我正在尝试对我的Androapp进行工具强制转换支持,当我使用普通的非实时链接(例如MP4甚至是HLS非实时流)时,它的效果很好,但是,当我使用实时流时,流不会在chromecast。
这是我创建MediaInfo的方式:
MediaMetadata movieMetadata = new MediaMetadata(MediaMetadata.MEDIA_TYPE_MOVIE);
movieMetadata.putString(MediaMetadata.KEY_TITLE, "Test");
MediaInfo mediaInfo = new MediaInfo.Builder("HLS link")
.setStreamType(MediaInfo.STREAM_TYPE_LIVE).setContentType(MimeTypes.APPLICATION_M3U8)
.setMetadata(movieMetadata).build();
这是我加载物品的方式:
castPlayer.loadItem(new MediaQueueItem.Builder(setCastMedia()).build(), 0);
这是我得到的日志猫:
W/MediaControlChannel: received unexpected error: Invalid Request. W/MediaQueue: Error fetching queue item ids, statusCode=2100, statusMessage=null
有什么主意我做错了吗? 对于TS类型的流也是如此...
答案 0 :(得分:0)
使用以下代码,您可以使用ExoPlayer投射实时流。
MediaMetadata movieMetadata = new MediaMetadata(MediaMetadata.MEDIA_TYPE_TV_SHOW);
movieMetadata.putString(MediaMetadata.KEY_TITLE, "Title");
MediaInfo mediaInfo = new MediaInfo.Builder("your_link.m3u8")
.setStreamType(MediaInfo.STREAM_TYPE_LIVE)
.setContentType(MimeTypes.APPLICATION_M3U8)
.setMetadata(movieMetadata)
.build();
MediaQueueItem mediaQueueItem = new MediaQueueItem.Builder(mediaInfo).build();
castPlayer.loadItem(mediaQueueItem, mediaQueueItem.getMedia().getStreamDuration());
castPlayer.setPlayWhenReady(true);