在风格媒体接收器Chromecast上播放M3U8



我正在尝试从我的Android发送器播放M3U8文件,像这样:

   metaData = new MediaMetadata(MediaMetadata.MEDIA_TYPE_MOVIE);
    metaData.putString(MediaMetadata.KEY_TITLE, "Demo Video");
    MediaInfo mediaInfo = new MediaInfo.Builder(
            "http://www.corsproxy.com/playertest.longtailvideo.com/adaptive/bbbfull/bbbfull.m3u8")
            .setContentType("application/vnd.apple.mpegurl")
            .setStreamType(MediaInfo.STREAM_TYPE_BUFFERED)
            .setMetadata(metaData)
            .build();
player.load(client, mediaInfo, true)
          .setResultCallback(new ResultCallback<RemoteMediaPlayer.MediaChannelResult>() {
           @Override
           public void onResult(RemoteMediaPlayer.MediaChannelResult mediaChannelResult) {
                        Status status = mediaChannelResult.getStatus();
                                     if (status.isSuccess()) {
                                      }
                                      }
                                      });

然而,我得到错误

[cast.receiver.MediaManager] Load metadata error 
[cast.player.api.Player] error 
[cast.receiver.MediaManager] Load metadata error
[cast.receiver.MediaManager] Not sending LOAD error as there is no on going LOAD request

这是一个风格的媒体接收器,我的理解是,它正在使用媒体播放器库,所以它应该能够处理M3U8对吗?所以我认为这可能是我的Sender部分的错误?我是否正确加载了m3u8 url ?

您可以尝试在已解析的m3u8条目上进行exp/imp循环,将您的m3su属性替换为"movieMetadata"…

private static MediaInfo buildMediaInfo(String title,
        String subTitle, String studio, String url, String imgUrl, String bigImageUrl) {
    MediaMetadata movieMetadata = new MediaMetadata(MediaMetadata.MEDIA_TYPE_MOVIE);
    movieMetadata.putString(MediaMetadata.KEY_SUBTITLE, subTitle);
    movieMetadata.putString(MediaMetadata.KEY_TITLE, title);
    movieMetadata.putString(MediaMetadata.KEY_STUDIO, studio);
    movieMetadata.addImage(new WebImage(Uri.parse(imgUrl)));
    movieMetadata.addImage(new WebImage(Uri.parse(bigImageUrl)));
    return new MediaInfo.Builder(url)
            .setStreamType(MediaInfo.STREAM_TYPE_BUFFERED)
            .setContentType(getMediaType())
            .setMetadata(movieMetadata)
            .build();
}

然后当你有一个MediaInfo…你需要某些东西的播放事件,你需要在每个播放项目的末尾放置一个循环器,以便在下一个MediaInfo条目上发出播放事件的信号。我使用CCL库构建了循环,它播放MediaInfo项目列表。

最新更新