Chromecast是否支持Apple HLS?

时间:2015-01-17 14:42:28

标签: android chromecast google-cast

Chromecast's documentation中,Chromecast确实支持HLS流。但我不能让它发挥作用。

我创建了一个简单的应用程序,它有一个启动播放的按钮。对于MP4文件,它可以很好地工作,但不适用于HLS流。这就是我开始流的方式:

btnStart.setOnClickListener(new View.OnClickListener() {
 @Override
 public void onClick(View v) {
  String url = "http://planeta-online.tv:1935/vod/mp4:tvt.russia.time_laps_in_st_piter.flv/manifest.m3u8";
  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("http://cdn.planeta-online.tv/kp/app/icons/i5.png")));
   movieMetadata.addImage(new WebImage(Uri.parse("http://cdn.planeta-online.tv/kp/app/icons/i5.png")));

   MediaInfo mSelectedMedia = new MediaInfo.Builder(url)
    .setStreamType(MediaInfo.STREAM_TYPE_BUFFERED)
    .setContentType("application/vnd.apple.mpegurl")
    .setMetadata(movieMetadata)
    .build();

    mVideoCastManager.startCastControllerActivity(MainActivity.this, mSelectedMedia, 0, true);
   }
  });

我在Wowza上启用了此流的CORS,但它没有帮助。将StreamType从MediaInfo.STREAM_TYPE_BUFFERED更改为MediaInfo.STREAM_TYPE_LIVE也没有任何效果。还有其他想法吗?

2 个答案:

答案 0 :(得分:4)

你使用的接收器是什么?您可以使用默认接收器或Styled接收器;他们都支持HLS。自适应流的处理由Media Player Library(MPL)处理,如果您想编写自己的自定义接收器,则需要使用该库;我们有sample就可以做到这一点。

答案 1 :(得分:0)

我发现将流的contentType设置为"video/m3u""video/m3u8"(取决于您的格式),可以使用默认接收器为我的HLS流工作。