使用CastCompanionLibrary,向Chromecast发送一个MediaInfo来播放它很简单。
MediaInfo.Builder media = new MediaInfo.Builder("http://url.to/video.mp4");
VideoCastManager cast = ...
cast.startVideoCastControllerActivity(context, media.build(), 0, true);为了创建队列(播放列表),建议发送多个MediaInfo的推荐方法是什么?
更新#1:
我试图将queueLoad添加到代码中。让它在startVideoCastControllerActivity之后运行。
MediaInfo.Builder info = new MediaInfo.Builder("http://clips.vorwaerts-gmbh.de/big_buck_bunny.mp4");
info.setStreamType(MediaInfo.STREAM_TYPE_BUFFERED);
info.setContentType("video/mp4");
MediaQueueItem[] items = new MediaQueueItem[] {
new MediaQueueItem.Builder(info.build()).build(),
new MediaQueueItem.Builder(info.build()).build(),
new MediaQueueItem.Builder(info.build()).build()
};
cast.queueLoad(items, 0, 0, null);它用这个日志使应用程序崩溃:
com.google.android.gms.cast.MediaMetadata.getString(java.lang.String)‘:尝试在com.google.android.libraries.cast.companionlibrary.cast.VideoCastManager.updateMiniController(SourceFile:309) at com.google.android.libraries.cast.companionlibrary.cast.VideoCastManager.updateMiniControllers(SourceFile:321) at com.google.android.libraries.cast.companionlibrary.cast.VideoCastManager.onRemoteMediaPlayerStatusUpdated(SourceFile:2126)的空对象引用上调用虚拟方法的java.lang.String com.google.android.libraries.cast.companionlibrary.cast.VideoCastManager.onRemoteMediaPlayerStatusUpdated(SourceFile:2126)在com.google.android.libraries.cast.companionlibrary.cast.VideoCastManager.access$200(SourceFile:136) at com.google.android.libraries.cast.companionlibrary.cast.VideoCastManager$22.onStatusUpdated(SourceFile:1804) at com.google.android.gms.cast.RemoteMediaPlayer.onStatusUpdated(Unknown Source) at com.google.android.gms.cast.RemoteMediaPlayer.zza(Unknown Source) at com.google.android.gms.cast.RemoteMediaPlayer$1.onStatusUpdated(Unknown Source)com.google.android.gms.cast.internal.zzm.zzbZ(Unknown源( com.google.android.gms.cast.RemoteMediaPlayer.onMessageReceived(Unknown源))( com.google.android.gms.cast.internal.zze$zzb$4.run(Unknown源)
发布于 2015-11-11 16:35:54
建议的方法是为每个MediaInfo创建一个MediaInfo,然后使用VideoCastManager#queueLoad()并传递一个MediaQueueItem数组。还可以从单个队列项开始,并将其追加到队列中,或者插入队列中的某个位置,等等;还有许多方法可以编辑和管理队列。
SDK (和CCL)中有一些回调可以让您知道队列何时更新,等等,因此您可以使用这些回调更新发送方(例如,如果发送方A更新队列,发送方B可以使用这些回调保持同步)。CastVideos应用程序使用它,并提供了一个简单的UI,可以将队列中的项目刷掉或重新排序等等。
发布于 2015-11-11 15:31:57
您必须创建一个自定义接收器来实现播放列表功能。如何使用javascript在接收者上实现播放列表结构取决于您。见这个答案从阿里纳达夫,为什么播放列表需要保持在接收者,而不是发送者。
至于加载多个MediaInfo项,您必须查看castManager和MediaQueueItem类的queueLoad方法。
https://stackoverflow.com/questions/33653566
复制相似问题