我试图从一台服务器上投射m3u8并在第一段之后得到error: cast.player.api.ErrorCode.PLAYBACK/104
但是当我下载段和m3u8清单并将它放在我的本地服务器上时它一切正常。我可以播放来自服务器的视频,该视频会给其他玩家带来错误。
我已经检查过CORS标题,我已经使用curl自己拉段,它们工作得很好。
那么如何才能获得有关导致此错误的更多详细信息?
错误:cast.player.api.ErrorCode.PLAYBACK / 104
编辑:启用调试时记录。
[ 78.475s] [cast.receiver.IpcChannel] Received message: {"data":"{\"requestId\":6,\"type\":\"LOAD\",\"media\":{\"contentId\":\"http://domain/file.m3u8",\"streamType\":\"BUFFERED\",\"contentType\":\"application\\/vnd.apple.mpegurl\",\"metadata\":{\"metadataType\":1,\"images\":[{\"url\":\"thumbnail",\"width\":100,\"height\":100}],\"title\":\"title",\"subtitle\":\"subtitle\"},\"duration\":null,\"tracks\":[]},\"autoplay\":true,\"currentTime\":0}","namespace":"urn:x-cast:com.google.cast.media","senderId":"senderid"}
cast_receiver.js:67 [ 78.479s] [cast.receiver.CastMessageBus] Dispatching CastMessageBus message
cast_receiver.js:67 [ 78.485s] [cast.receiver.MediaManager] MediaManager message received
cast_receiver.js:67 [ 78.492s] [cast.receiver.MediaManager] Dispatching MediaManager load event
cast_receiver.js:67 [ 78.509s] [cast.receiver.MediaManager] Load message received:{"requestId":6,"media":{"contentId":"http://domain/file.m3u8","streamType":"BUFFERED","contentType":"application/vnd.apple.mpegurl","metadata":{"metadataType":1,"images":[{"url":"thumbnail","width":100,"height":100}],"title":"title ","subtitle":"subtitle"},"duration":null,"tracks":[]},"autoplay":true,"currentTime":0}
player.js:2063 onLoad_
player.js:2063 Cancelled deferred playback: new media is loaded
player.js:2063 onLoad_
player.js:2063 Loading: video
player.js:2063 resetMediaElement_
player.js:2063 setType_: video
player.js:2063 loadVideo_
player.js:2063 letPlayerHandleAutoPlay_: true
player.js:2063 loadVideo_: using Media Player Library
player.js:2063 Regular video load
media_player.js:25 [ 78.374s] [cast.player.api.Player] Version: 1.0.0.37
media_player.js:25 [ 78.385s] [cast.player.api.Player] load
media_player.js:25 [ 78.397s] [goog.net.XhrIo] Opening Xhr [GET http://domain/file.m3u8 -1]
media_player.js:25 [ 78.410s] [goog.net.XhrIo] Will abort after 30000ms if incomplete, xhr2 false [GET http://domain/file.m3u8 -1]
media_player.js:25 [ 78.418s] [goog.net.XhrIo] Sending request [GET http://domain/file.m3u8 -1]
media_player.js:25 [ 78.441s] [cast.player.core.MediaSourceManager] open
player.js:2063 loadMetadata_
cast_receiver.js:67 [ 78.666s] [cast.receiver.MediaManager] Sending broadcast status message
player.js:2063 customizedStatusCallback_: playerState=IDLE, this.state_=loading
cast_receiver.js:67 [ 78.677s] [cast.receiver.IpcChannel] IPC message sent: {"namespace":"urn:x-cast:com.google.cast.media","senderId":"*:*","data":"{\"type\":\"MEDIA_STATUS\",\"status\":[{\"mediaSessionId\":5,\"playbackRate\":1,\"playerState\":\"IDLE\",\"currentTime\":0,\"supportedMediaCommands\":15,\"volume\":{\"level\":1,\"muted\":false},\"media\":{\"contentId\":\"http://domain/file.m3u8\",\"streamType\":\"BUFFERED\",\"contentType\":\"application/vnd.apple.mpegurl\",\"metadata\":{\"metadataType\":1,\"images\":[{\"url\":\"thumbnail\",\"width\":100,\"height\":100}],\"title\":\"title \",\"subtitle\":\"subtitle\"},\"duration\":null,\"tracks\":[]},\"currentItemId\":5,\"idleReason\":\"ERROR\",\"extendedStatus\":{\"playerState\":\"LOADING\",\"media\":{\"contentId\":\"http://domain/file.m3u8\",\"streamType\":\"BUFFERED\",\"contentType\":\"application/vnd.apple.mpegurl\",\"metadata\":{\"metadataType\":1,\"images\":[{\"url\":\"thumbnail",\"width\":100,\"height\":100}],\"title\":\"title \",\"subtitle\":\"subtitle\"},\"duration\":null,\"tracks\":[]}},\"repeatMode\":\"REPEAT_OFF\"}],\"requestId\":0}"}
media_player.js:25 [ 78.521s] [goog.net.XhrIo] Request complete [GET http://domain/file.m3u8 200]
media_player.js:25 [ 78.631s] [cast.player.core.QualityManager] 0: initial 0
media_player.js:25 [ 78.643s] [cast.player.hls.Playlist] update: http://domain/file.m3u8
media_player.js:25 [ 78.662s] [goog.net.XhrIo] Opening Xhr [GET http://domain/file.m3u8 -1]
media_player.js:25 [ 78.671s] [goog.net.XhrIo] Will abort after 30000ms if incomplete, xhr2 false [GET http://domain/file.m3u8 -1]
media_player.js:25 [ 78.679s] [goog.net.XhrIo] Sending request [GET http://domain/file.m3u8 -1]
media_player.js:25 [ 78.747s] [goog.net.XhrIo] Request complete [GET http://domain/file.m3u8 200]
player.js:2063 preloaded=false
media_player.js:25 [ 78.893s] [cast.player.core.SegmentManager] 0: seek success Infinity
media_player.js:25 [ 78.910s] [goog.net.XhrIo] Opening Xhr [GET http://domain/seg1.ts -1]
media_player.js:25 [ 78.918s] [goog.net.XhrIo] Will abort after 10000ms if incomplete, xhr2 false [GET http://domain/seg1.ts -1]
media_player.js:25 [ 78.925s] [goog.net.XhrIo] Sending request [GET http://domain/seg1.ts -1]
media_player.js:25 [ 78.977s] [cast.player.core.MediaSourceManager] sourceopen
media_player.js:25 [ 78.986s] [cast.player.core.SourceBufferManager] buffer type: video/mp2t; codecs="avc1.4D401E,mp4a.40.2"
media_player.js:25 [ 79.140s] [goog.net.XhrIo] Request complete [GET http://domain/seg1.ts 200]
media_player.js:25 [ 79.151s] [cast.player.core.QualityManager] 0: current=17976.10, average=643526.48
media_player.js:25 [ 79.158s] [cast.player.core.SegmentManager] 0: process segment
media_player.js:25 [ 79.165s] [cast.player.hls.Adaptation] process segment
media_player.js:25 [ 79.172s] [cast.player.hls.Adaptation] start: 9596.795999999998
media_player.js:25 [ 79.177s] [cast.player.core.SegmentManager] 0: segment processed
media_player.js:25 [ 79.224s] [cast.player.core.SourceBufferManager] 0: abort
media_player.js:25 [ 79.229s] [cast.player.core.SourceBufferManager] 0: timestampOffset = -0.7089999999989232
media_player.js:25 [ 79.232s] [cast.player.core.SourceBufferManager] 0: append 564 bytes
media_player.js:25 [ 79.247s] [cast.player.core.SourceBufferManager] 0: updateend
media_player.js:25 [ 79.649s] [cast.player.api.Player] endOfStream 9596.116
player.js:2063 onError
cast_receiver.js:67 [ 79.873s] [cast.receiver.MediaManager] Load metadata error: [object Object]pd @ cast_receiver.js:67nd.Xc @ cast_receiver.js:67tb.log @ cast_receiver.js:22G @ cast_receiver.js:23W.Xb @ cast_receiver.js:178g.Xb @ cast_receiver.js:127ec @ cast_receiver.js:30bc @ cast_receiver.js:31(anonymous function) @ cast_receiver.js:29
player.js:2063 onLoadMetadataError_
media_player.js:25 [ 79.675s] [cast.player.api.Player] errorbc @ media_player.js:25$b.Kj @ media_player.js:25Eb.log @ media_player.js:22fc @ media_player.js:26k.xd @ media_player.js:348Fc @ media_player.js:33Bc @ media_player.js:35(anonymous function) @ media_player.js:32
media_player.js:25 [ 79.677s] [cast.player.api.Host] error: cast.player.api.ErrorCode.PLAYBACK/104bc @ media_player.js:25$b.Kj @ media_player.js:25Eb.log @ media_player.js:22fc @ media_player.js:26dg.S @ media_player.js:112k.xd @ media_player.js:348Fc @ media_player.js:33Bc @ media_player.js:35(anonymous function) @ media_player.js:32
player.js:2063 resetMediaElement_
media_player.js:25 [ 79.691s] [cast.player.api.Player] unload
player.js:2063 onError
cast_receiver.js:67 [ 79.912s] [cast.receiver.MediaManager] Load metadata error: [object Object]pd @ cast_receiver.js:67nd.Xc @ cast_receiver.js:67tb.log @ cast_receiver.js:22G @ cast_receiver.js:23W.Xb @ cast_receiver.js:178g.Xb @ cast_receiver.js:127ec @ cast_receiver.js:30bc @ cast_receiver.js:31(anonymous function) @ cast_receiver.js:29loadErrorCallback @ player.js:823dg.S @ media_player.js:112k.xd @ media_player.js:348Fc @ media_player.js:33Bc @ media_player.js:35(anonymous function) @ media_player.js:32
player.js:2063 onLoadMetadataError_
3player.js:2063 discarded obsolete deferred state(idle).
player.js:2063 setState_: state=idle, crossfade=false, delay=undefined
player.js:2063 updateApplicationState_
cast_receiver.js:67 [ 80.019s] [cast.receiver.IpcChannel] IPC message sent: {"namespace":"urn:x-cast:com.google.cast.system","senderId":"SystemSender","data":"{\"type\":\"setappstate\",\"statusText\":\"Ready To Cast\"}"}
player.js:2063 setIdleTimeout_: 300000
player.js:2063 setState_: state=loading, crossfade=false, delay=undefined
player.js:2063 updateApplicationState_
cast_receiver.js:67 [ 80.060s] [cast.receiver.IpcChannel] IPC message sent: {"namespace":"urn:x-cast:com.google.cast.system","senderId":"SystemSender","data":"{\"type\":\"setappstate\",\"statusText\":\"Now Casting: title \"}"}
player.js:2063 setIdleTimeout_: 300000
player.js:2063 Deferring load response, loadedmetadata event not received
player.js:2063 Defering playback for 3000 ms
player.js:2063 setState_: state=idle, crossfade=true, delay=undefined
cast_receiver.js:67 [ 80.100s] [cast.receiver.MediaManager] Sending broadcast status message
player.js:2063 customizedStatusCallback_: playerState=IDLE, this.state_=loading
cast_receiver.js:67 [ 80.106s] [cast.receiver.IpcChannel] IPC message sent: {"namespace":"urn:x-cast:com.google.cast.media","senderId":"*:*","data":"{\"type\":\"MEDIA_STATUS\",\"status\":[{\"mediaSessionId\":5,\"playbackRate\":1,\"playerState\":\"IDLE\",\"currentTime\":0,\"supportedMediaCommands\":15,\"volume\":{\"level\":1,\"muted\":false},\"currentItemId\":5,\"idleReason\":\"ERROR\",\"extendedStatus\":{\"playerState\":\"LOADING\",\"media\":{\"contentId\":\"http://domain/file.m3u8\",\"streamType\":\"BUFFERED\",\"contentType\":\"application/vnd.apple.mpegurl\",\"metadata\":{\"metadataType\":1,\"images\":[{\"url\":\"thumbnail\",\"width\":100,\"height\":100}],\"title\":\"title \",\"subtitle\":\"subtitle\"},\"duration\":null,\"tracks\":[]}}}],\"requestId\":0}"}
player.js:2063 setState_: state=idle, crossfade=true, delay=undefined
cast_receiver.js:67 [ 80.112s] [cast.receiver.MediaManager] Nothing to reset, Media is already null
cast_receiver.js:67 [ 80.115s] [cast.receiver.MediaManager] Sending error message to sessionid-40
cast_receiver.js:67 [ 80.118s] [cast.receiver.IpcChannel] IPC message sent: {"namespace":"urn:x-cast:com.google.cast.media","senderId":"sessionid-40","data":"{\"requestId\":6,\"type\":\"LOAD_FAILED\"}"}
player.js:2063 setState_: state=idle, crossfade=true, delay=undefined
cast_receiver.js:67 [ 80.124s] [cast.receiver.MediaManager] Nothing to reset, Media is already null
player.js:2063 setState_: state=idle, crossfade=true, delay=undefined
cast_receiver.js:67 [ 80.128s] [cast.receiver.MediaManager] Nothing to reset, Media is already null
cast_receiver.js:67 [ 80.131s] [cast.receiver.MediaManager] Not sending LOAD error as there is no on going LOAD requestpd @ cast_receiver.js:67nd.Xc @ cast_receiver.js:67tb.log @ cast_receiver.js:22G @ cast_receiver.js:23W.gc @ cast_receiver.js:178g.jd @ cast_receiver.js:179(anonymous function) @ player.js:1657(anonymous function) @ player.js:1901listener @ player.js:1996
3player.js:2063 discarded obsolete deferred state(idle).
player.js:2063 setState_: state=idle, crossfade=false, delay=undefined
player.js:2063 updateApplicationState_
cast_receiver.js:67 [ 80.936s] [cast.receiver.IpcChannel] IPC message sent: {"namespace":"urn:x-cast:com.google.cast.system","senderId":"SystemSender","data":"{\"type\":\"setappstate\",\"statusText\":\"Ready To Cast\"}"}
player.js:2063 setIdleTimeout_: 300000
player.js:2063 Playing