我在我的应用程序中使用CastCompanionLibrary-android,并关注CastVideos-android在chromecast上播放直播。现在,视频流在我的本地播放器上工作正常,但是当涉及到投射该视频时,它将无法播放。相反,它只是向我显示我注册的接收器应用程序名称,而在发送器应用程序上,VideoCastControllerActivity
打开时只有一个不会结束的加载程序。我已经在谷歌Chrome投射控制台上注册了我的接收器应用程序(样式媒体接收器)和设备。另外,我尝试调试接收器应用程序,它在调试器或控制台上不显示任何内容。
以下是我的发件人应用程序的代码片段:
private void initMediaRouter() {
BaseCastManager.checkGooglePlayServices(this);
mCastManager = VideoCastManager.getInstance();
MediaMetadata mediaMetadata = new MediaMetadata(MediaMetadata.MEDIA_TYPE_MOVIE); //also tried MediaMetadata.MEDIA_TYPE_GENERIC
mediaMetadata.putString(MediaMetadata.KEY_TITLE, channel.getChannelName());
mediaMetadata.putString(MediaMetadata.KEY_SUBTITLE, channel.getCatName());
info = new MediaInfo.Builder(channel.getHttpStream())
.setMetadata(mediaMetadata)
.setContentType("Video/*")
.setStreamType(MediaInfo.STREAM_TYPE_LIVE)
.build();
castConsumer = new CastConsumer();
mCastManager.addVideoCastConsumer(castConsumer);
}
此函数在玩家活动的 OnCreate() 函数上调用。
监听器(我正在为wasLaunched
参数获得真正的价值)
private class CastConsumer extends VideoCastConsumerImpl {
@Override
public void onApplicationConnected(ApplicationMetadata appMetadata, String sessionId, boolean wasLaunched) {
mCastManager.startVideoCastControllerActivity(PlayerActivity.this, info, 0, true);
}
}
在应用程序的onCreate()函数中:
String applicationId = getString(R.string.cast_app_id);
CastConfiguration options = new CastConfiguration.Builder(applicationId)
.enableAutoReconnect()
.enableCaptionManagement()
.enableDebug()
.enableLockScreen()
.enableNotification()
.enableWifiReconnection()
.setCastControllerImmersive(true)
.setLaunchOptions(false, Locale.getDefault())
.addNotificationAction(CastConfiguration.NOTIFICATION_ACTION_PLAY_PAUSE, true)
.addNotificationAction(CastConfiguration.NOTIFICATION_ACTION_DISCONNECT, true)
.build();
VideoCastManager.initialize(this, options);
你能告诉我哪里出错了吗?谢谢。
可能有问题。如果是这种情况,请尝试将其正确设置为 video/mp4
之类的内容。