Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/178.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/unix/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
无法从android sender应用程序在chromecast上播放实时流_Android_Chromecast_Google Cast_Http Live Streaming - Fatal编程技术网

无法从android sender应用程序在chromecast上播放实时流

无法从android sender应用程序在chromecast上播放实时流,android,chromecast,google-cast,http-live-streaming,Android,Chromecast,Google Cast,Http Live Streaming,我正在我的应用程序中使用并跟随chromecast播放实时流。现在,视频流在我的本地播放器上运行良好,但在播放视频时,它不会播放。相反,它只显示我注册的接收者应用程序名,在发送者应用程序上,VideoCastControllerActivity只打开一个不会结束的加载程序。 我已经在Google chrome cast控制台上注册了我的接收器应用程序(样式化媒体接收器)和设备。此外,我还尝试调试receiver应用程序,它在调试器或控制台上没有显示任何内容 以下是我的发件人应用程序的代码片段:

我正在我的应用程序中使用并跟随chromecast播放实时流。现在,视频流在我的本地播放器上运行良好,但在播放视频时,它不会播放。相反,它只显示我注册的接收者应用程序名,在发送者应用程序上,
VideoCastControllerActivity
只打开一个不会结束的加载程序。 我已经在Google chrome cast控制台上注册了我的接收器应用程序(样式化媒体接收器)和设备。此外,我还尝试调试receiver应用程序,它在调试器或控制台上没有显示任何内容

以下是我的发件人应用程序的代码片段:

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()函数上调用此函数

侦听器(我正在获取
wasrunched
param的真实值)

在应用程序的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

要查看发生了什么,我建议做三件事:(1)请在android应用程序中对流的url进行硬编码,看看是否有效。(2) 您需要在chrome调试器会话中启用日志记录以查看日志;这会告诉你哪里出了问题,所以这样做是非常重要的;按照这里的说明操作:并确保运行cast.receiver.logger.setLevelValue(cast.receiver.LoggerLevel.DEBUG);(3)确保为您的流设置了CORS(1)我的流是正确的,就像我在MXPlayer上玩它,然后施放它一样,它可以工作。对于(2)尝试了一切并遵循了所有步骤,在调试器上仍然没有结果,我运行了相同的命令,什么也没有发生,(3)什么是CORS,我需要在哪里为我的流设置它?对于(1),你没有真正回答我的建议。对于(2),我不知道你所说的“什么都没有发生”是什么意思。你的意思是说你根本看不到日志记录,或者你没有看到任何与你的问题相关的日志记录?CORS是一项要求,您可以在我们的开发者网站上了解这一点,请参阅。你能共享一个流吗?谢谢@AliNaddaf一直回复我,我在调试器上看不到任何东西,但我只看到了“屏蔽”按钮并能够加载不安全的脚本,我的调试器现在启动了,多亏了你。另外,你能告诉我更多关于CORS的信息吗?我应该设置api响应的标题吗?CORS是一个行业标准,所以你可以在网上阅读。CORS头应该由提供内容的服务器(比如CDN等)添加到流中;要查看是否已设置,请执行“curl-v your_stream_url”,并查看响应中的标题;如果您没有看到像“Access Control Allow Origin:*”这样的标题,那么您的流没有设置CORS标题,chromecast将不会播放它。chrome调试器og应该显示问题所在。否。。CORS是主要问题。但是谢谢你的帮助:)
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);