【发布时间】:2015-11-11 15:13:24
【问题描述】:
使用CastCompanionLibrary,将MediaInfo 发送到Chromecast API 即可轻松播放。
MediaInfo.Builder media = new MediaInfo.Builder("http://url.to/video.mp4");
VideoCastManager cast = ...
cast.startVideoCastControllerActivity(context, media.build(), 0, true);
发送多个MediaInfos 以创建队列(播放列表)的推荐方法是什么?
更新 #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);
它使用此日志使应用程序崩溃:
java.lang.NullPointerException:尝试调用虚拟方法 'java.lang.String com.google.android.gms.cast.MediaMetadata.getString(java.lang.String)' 在空对象引用上 com.google.android.libraries.cast.companionlibrary.cast.VideoCastManager.updateMiniController(SourceFile:309) 在 com.google.android.libraries.cast.companionlibrary.cast.VideoCastManager.updateMiniControllers(SourceFile:321) 在 com.google.android.libraries.cast.companionlibrary.cast.VideoCastManager.onRemoteMediaPlayerStatusUpdated(SourceFile:2126) 在 com.google.android.libraries.cast.companionlibrary.cast.VideoCastManager.access$200(SourceFile:136) 在 com.google.android.libraries.cast.companionlibrary.cast.VideoCastManager$22.onStatusUpdated(SourceFile:1804) 在 com.google.android.gms.cast.RemoteMediaPlayer.onStatusUpdated(未知 来源)在 com.google.android.gms.cast.RemoteMediaPlayer.zza(未知 来源)在 com.google.android.gms.cast.RemoteMediaPlayer$1.onStatusUpdated(未知 来源)在 com.google.android.gms.cast.internal.zzm.zza(未知 来源)在 com.google.android.gms.cast.internal.zzm.zzbZ(未知 来源)在 com.google.android.gms.cast.RemoteMediaPlayer.onMessageReceived(未知 来源)在 com.google.android.gms.cast.internal.zze$zzb$4.run(未知 来源)
【问题讨论】:
-
目前,想法是您将项目添加到要播放的队列中,但您不会将用户发送到 VideoCastControllerActivity,而是将它们保留在浏览页面上,以便他们可以添加更多项目到队列或管理队列。当队列加载到接收器上时,迷你控制器会出现,如果用户想要进入 VideoCastControllerActivity,她可以按下迷你控制器(在内部调用 startVideoCastcontrollerActivity)。也就是说,你可以在等待队列加载后调用startVideoCastControllerActivity。
-
如果您想要一个新的 startVideoCastControllerActivity 变体,它需要一个队列项数组,请随时打开一个功能请求。
-
也许它崩溃的原因是我目前根本不使用 MiniController。这可以想象吗?
-
您需要为用户提供一种方法,让他们可以在您的应用程序中的任何位置控制演员内容的播放,迷你控制器是基于 UX Checklist 的推荐方法,因此它是一种不管这个问题如何,添加这一点是个好主意。在您当前的应用中,用户离开该页面后如何返回 VideoCastControllerActivity?
-
当前有通知或Chromecast路由器按钮。
标签: android chromecast castcompanionlibrary