正在显示
9 个修改的文件
包含
83 行增加
和
33 行删除
| @@ -3,7 +3,7 @@ | @@ -3,7 +3,7 @@ | ||
| 3 | ////////////////////////////////////////////////////////////////////////////////// | 3 | ////////////////////////////////////////////////////////////////////////////////// |
| 4 | 4 | ||
| 5 | // to query the swf anti cache. | 5 | // to query the swf anti cache. |
| 6 | -function srs_get_version_code() { return "1.20"; } | 6 | +function srs_get_version_code() { return "1.21"; } |
| 7 | 7 | ||
| 8 | /** | 8 | /** |
| 9 | * player specified size. | 9 | * player specified size. |
| @@ -132,21 +132,41 @@ package | @@ -132,21 +132,41 @@ package | ||
| 132 | elapTimer.restart(); | 132 | elapTimer.restart(); |
| 133 | } | 133 | } |
| 134 | } | 134 | } |
| 135 | + | ||
| 136 | + // srs infos | ||
| 137 | + private var srs_server:String = null; | ||
| 138 | + private var srs_primary_authors:String = null; | ||
| 139 | + private var srs_id:String = null; | ||
| 140 | + private function update_context_items():void { | ||
| 141 | + // for context menu | ||
| 142 | + var customItems:Array = [new ContextMenuItem("SrsPlayer")]; | ||
| 143 | + if (srs_server != null) { | ||
| 144 | + customItems.push(new ContextMenuItem("Server: " + srs_server)); | ||
| 145 | + } | ||
| 146 | + if (srs_primary_authors != null) { | ||
| 147 | + customItems.push(new ContextMenuItem("PrimaryAuthors: " + srs_primary_authors)); | ||
| 148 | + } | ||
| 149 | + if (srs_id != null) { | ||
| 150 | + customItems.push(new ContextMenuItem("SrsId: " + srs_id)); | ||
| 151 | + } | ||
| 152 | + contextMenu.customItems = customItems; | ||
| 153 | + } | ||
| 135 | 154 | ||
| 136 | // get NetConnection NetStatusEvent | 155 | // get NetConnection NetStatusEvent |
| 137 | public function onStatus(evt:NetStatusEvent) : void{ | 156 | public function onStatus(evt:NetStatusEvent) : void{ |
| 138 | trace(evt.info.code); | 157 | trace(evt.info.code); |
| 139 | 158 | ||
| 140 | if (evt.info.hasOwnProperty("data") && evt.info.data) { | 159 | if (evt.info.hasOwnProperty("data") && evt.info.data) { |
| 141 | - // for context menu | ||
| 142 | - var customItems:Array = [new ContextMenuItem("SrsPlayer")]; | ||
| 143 | if (evt.info.data.hasOwnProperty("srs_server")) { | 160 | if (evt.info.data.hasOwnProperty("srs_server")) { |
| 144 | - customItems.push(new ContextMenuItem("Server: " + evt.info.data.srs_server)); | 161 | + srs_server = evt.info.data.srs_server; |
| 145 | } | 162 | } |
| 146 | if (evt.info.data.hasOwnProperty("srs_primary_authors")) { | 163 | if (evt.info.data.hasOwnProperty("srs_primary_authors")) { |
| 147 | - customItems.push(new ContextMenuItem("PrimaryAuthors: " + evt.info.data.srs_primary_authors)); | 164 | + srs_primary_authors = evt.info.data.srs_primary_authors; |
| 165 | + } | ||
| 166 | + if (evt.info.data.hasOwnProperty("srs_id")) { | ||
| 167 | + srs_id = evt.info.data.srs_id; | ||
| 148 | } | 168 | } |
| 149 | - contextMenu.customItems = customItems; | 169 | + update_context_items(); |
| 150 | } | 170 | } |
| 151 | 171 | ||
| 152 | switch(evt.info.code){ | 172 | switch(evt.info.code){ |
| @@ -143,29 +143,17 @@ package | @@ -143,29 +143,17 @@ package | ||
| 143 | private function system_on_metadata(metadata:Object):void { | 143 | private function system_on_metadata(metadata:Object):void { |
| 144 | this.media_metadata = metadata; | 144 | this.media_metadata = metadata; |
| 145 | 145 | ||
| 146 | - if (metadata.hasOwnProperty("server")) { | ||
| 147 | - // for context menu | ||
| 148 | - var customItems:Array = [new ContextMenuItem("SrsPlayer")]; | ||
| 149 | - if (metadata.hasOwnProperty("server")) { | ||
| 150 | - customItems.push(new ContextMenuItem("Server: " + metadata.server)); | ||
| 151 | - } | ||
| 152 | - if (metadata.hasOwnProperty("contributor")) { | ||
| 153 | - customItems.push(new ContextMenuItem("Contributor: " + metadata.contributor)); | ||
| 154 | - } | ||
| 155 | - contextMenu.customItems = customItems; | ||
| 156 | - } | ||
| 157 | - | ||
| 158 | // for js. | 146 | // for js. |
| 159 | var obj:Object = __get_video_size_object(); | 147 | var obj:Object = __get_video_size_object(); |
| 160 | 148 | ||
| 161 | obj.server = 'srs'; | 149 | obj.server = 'srs'; |
| 162 | obj.contributor = 'winlin'; | 150 | obj.contributor = 'winlin'; |
| 163 | 151 | ||
| 164 | - if (metadata.hasOwnProperty("server")) { | ||
| 165 | - obj.server = metadata.server; | 152 | + if (srs_server != null) { |
| 153 | + obj.server = srs_server; | ||
| 166 | } | 154 | } |
| 167 | - if (metadata.hasOwnProperty("contributor")) { | ||
| 168 | - obj.contributor = metadata.contributor; | 155 | + if (srs_primary_authors != null) { |
| 156 | + obj.contributor = srs_primary_authors; | ||
| 169 | } | 157 | } |
| 170 | 158 | ||
| 171 | var code:int = flash.external.ExternalInterface.call(js_on_player_metadata, js_id, obj); | 159 | var code:int = flash.external.ExternalInterface.call(js_on_player_metadata, js_id, obj); |
| @@ -277,6 +265,25 @@ package | @@ -277,6 +265,25 @@ package | ||
| 277 | } | 265 | } |
| 278 | } | 266 | } |
| 279 | 267 | ||
| 268 | + // srs infos | ||
| 269 | + private var srs_server:String = null; | ||
| 270 | + private var srs_primary_authors:String = null; | ||
| 271 | + private var srs_id:String = null; | ||
| 272 | + private function update_context_items():void { | ||
| 273 | + // for context menu | ||
| 274 | + var customItems:Array = [new ContextMenuItem("SrsPlayer")]; | ||
| 275 | + if (srs_server != null) { | ||
| 276 | + customItems.push(new ContextMenuItem("Server: " + srs_server)); | ||
| 277 | + } | ||
| 278 | + if (srs_primary_authors != null) { | ||
| 279 | + customItems.push(new ContextMenuItem("PrimaryAuthors: " + srs_primary_authors)); | ||
| 280 | + } | ||
| 281 | + if (srs_id != null) { | ||
| 282 | + customItems.push(new ContextMenuItem("SrsId: " + srs_id)); | ||
| 283 | + } | ||
| 284 | + contextMenu.customItems = customItems; | ||
| 285 | + } | ||
| 286 | + | ||
| 280 | /** | 287 | /** |
| 281 | * function for js to call: to play the stream. stop then play. | 288 | * function for js to call: to play the stream. stop then play. |
| 282 | * @param url, the rtmp/http url to play. | 289 | * @param url, the rtmp/http url to play. |
| @@ -300,15 +307,16 @@ package | @@ -300,15 +307,16 @@ package | ||
| 300 | trace ("NetConnection: code=" + evt.info.code); | 307 | trace ("NetConnection: code=" + evt.info.code); |
| 301 | 308 | ||
| 302 | if (evt.info.hasOwnProperty("data") && evt.info.data) { | 309 | if (evt.info.hasOwnProperty("data") && evt.info.data) { |
| 303 | - // for context menu | ||
| 304 | - var customItems:Array = [new ContextMenuItem("SrsPlayer")]; | ||
| 305 | if (evt.info.data.hasOwnProperty("srs_server")) { | 310 | if (evt.info.data.hasOwnProperty("srs_server")) { |
| 306 | - customItems.push(new ContextMenuItem("Server: " + evt.info.data.srs_server)); | 311 | + srs_server = evt.info.data.srs_server; |
| 307 | } | 312 | } |
| 308 | if (evt.info.data.hasOwnProperty("srs_primary_authors")) { | 313 | if (evt.info.data.hasOwnProperty("srs_primary_authors")) { |
| 309 | - customItems.push(new ContextMenuItem("PrimaryAuthors: " + evt.info.data.srs_primary_authors)); | 314 | + srs_primary_authors = evt.info.data.srs_primary_authors; |
| 315 | + } | ||
| 316 | + if (evt.info.data.hasOwnProperty("srs_id")) { | ||
| 317 | + srs_id = evt.info.data.srs_id; | ||
| 310 | } | 318 | } |
| 311 | - contextMenu.customItems = customItems; | 319 | + update_context_items(); |
| 312 | } | 320 | } |
| 313 | 321 | ||
| 314 | // TODO: FIXME: failed event. | 322 | // TODO: FIXME: failed event. |
| @@ -134,6 +134,25 @@ package | @@ -134,6 +134,25 @@ package | ||
| 134 | flash.external.ExternalInterface.call(this.js_on_publisher_warn, this.js_id, code); | 134 | flash.external.ExternalInterface.call(this.js_on_publisher_warn, this.js_id, code); |
| 135 | } | 135 | } |
| 136 | 136 | ||
| 137 | + // srs infos | ||
| 138 | + private var srs_server:String = null; | ||
| 139 | + private var srs_primary_authors:String = null; | ||
| 140 | + private var srs_id:String = null; | ||
| 141 | + private function update_context_items():void { | ||
| 142 | + // for context menu | ||
| 143 | + var customItems:Array = [new ContextMenuItem("SrsPlayer")]; | ||
| 144 | + if (srs_server != null) { | ||
| 145 | + customItems.push(new ContextMenuItem("Server: " + srs_server)); | ||
| 146 | + } | ||
| 147 | + if (srs_primary_authors != null) { | ||
| 148 | + customItems.push(new ContextMenuItem("PrimaryAuthors: " + srs_primary_authors)); | ||
| 149 | + } | ||
| 150 | + if (srs_id != null) { | ||
| 151 | + customItems.push(new ContextMenuItem("SrsId: " + srs_id)); | ||
| 152 | + } | ||
| 153 | + contextMenu.customItems = customItems; | ||
| 154 | + } | ||
| 155 | + | ||
| 137 | /** | 156 | /** |
| 138 | * publish stream to server. | 157 | * publish stream to server. |
| 139 | * @param url a string indicates the rtmp url to publish. | 158 | * @param url a string indicates the rtmp url to publish. |
| @@ -187,15 +206,16 @@ package | @@ -187,15 +206,16 @@ package | ||
| 187 | trace ("NetConnection: code=" + evt.info.code); | 206 | trace ("NetConnection: code=" + evt.info.code); |
| 188 | 207 | ||
| 189 | if (evt.info.hasOwnProperty("data") && evt.info.data) { | 208 | if (evt.info.hasOwnProperty("data") && evt.info.data) { |
| 190 | - // for context menu | ||
| 191 | - var customItems:Array = [new ContextMenuItem("SrsPlayer")]; | ||
| 192 | if (evt.info.data.hasOwnProperty("srs_server")) { | 209 | if (evt.info.data.hasOwnProperty("srs_server")) { |
| 193 | - customItems.push(new ContextMenuItem("Server: " + evt.info.data.srs_server)); | 210 | + srs_server = evt.info.data.srs_server; |
| 194 | } | 211 | } |
| 195 | if (evt.info.data.hasOwnProperty("srs_primary_authors")) { | 212 | if (evt.info.data.hasOwnProperty("srs_primary_authors")) { |
| 196 | - customItems.push(new ContextMenuItem("PrimaryAuthors: " + evt.info.data.srs_primary_authors)); | 213 | + srs_primary_authors = evt.info.data.srs_primary_authors; |
| 214 | + } | ||
| 215 | + if (evt.info.data.hasOwnProperty("srs_id")) { | ||
| 216 | + srs_id = evt.info.data.srs_id; | ||
| 197 | } | 217 | } |
| 198 | - contextMenu.customItems = customItems; | 218 | + update_context_items(); |
| 199 | } | 219 | } |
| 200 | 220 | ||
| 201 | if (evt.info.code == "NetConnection.Connect.Closed") { | 221 | if (evt.info.code == "NetConnection.Connect.Closed") { |
| @@ -31,7 +31,7 @@ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. | @@ -31,7 +31,7 @@ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. | ||
| 31 | // current release version | 31 | // current release version |
| 32 | #define VERSION_MAJOR "0" | 32 | #define VERSION_MAJOR "0" |
| 33 | #define VERSION_MINOR "9" | 33 | #define VERSION_MINOR "9" |
| 34 | -#define VERSION_REVISION "117" | 34 | +#define VERSION_REVISION "118" |
| 35 | #define RTMP_SIG_SRS_VERSION VERSION_MAJOR"."VERSION_MINOR"."VERSION_REVISION | 35 | #define RTMP_SIG_SRS_VERSION VERSION_MAJOR"."VERSION_MINOR"."VERSION_REVISION |
| 36 | // server info. | 36 | // server info. |
| 37 | #define RTMP_SIG_SRS_KEY "SRS" | 37 | #define RTMP_SIG_SRS_KEY "SRS" |
| @@ -866,6 +866,8 @@ int SrsRtmpServer::response_connect_app(SrsRequest *req, const char* server_ip) | @@ -866,6 +866,8 @@ int SrsRtmpServer::response_connect_app(SrsRequest *req, const char* server_ip) | ||
| 866 | if (server_ip) { | 866 | if (server_ip) { |
| 867 | data->set("srs_server_ip", SrsAmf0Any::str(server_ip)); | 867 | data->set("srs_server_ip", SrsAmf0Any::str(server_ip)); |
| 868 | } | 868 | } |
| 869 | + // for edge to directly get the id of client. | ||
| 870 | + data->set("srs_id", SrsAmf0Any::number(_srs_context->get_id())); | ||
| 869 | 871 | ||
| 870 | if ((ret = protocol->send_and_free_packet(pkt, 0)) != ERROR_SUCCESS) { | 872 | if ((ret = protocol->send_and_free_packet(pkt, 0)) != ERROR_SUCCESS) { |
| 871 | srs_error("send connect app response message failed. ret=%d", ret); | 873 | srs_error("send connect app response message failed. ret=%d", ret); |
-
请 注册 或 登录 后发表评论