是否可以通过STREAM_ALARM播放YouTubePlayer



我有一个闹钟应用程序,我希望用户能够将YouTube视频设置为他们的闹钟。问题是YouTubePlayer正在通过音乐流播放,这意味着如果用户在耳机插入智能手机时睡觉,他/她将无法听到警报。在媒体播放器上,我可以使用以下代码行设置闹钟以使用电话扬声器:

audioManager.setStreamVolume(AudioManager.STREAM_ALARM, stream_music_volume, AudioManager.FLAG_REMOVE_SOUND_AND_VIBRATE);

是否有可能对YouTubePlayer执行相同的操作,或者我必须通过音乐流播放它?

这是不可能的。您无法更改 YoutubePlayer 的流类型。
您不得在后台播放YouTube视频。
话虽如此,您不应该使用在线资源作为警报,网络连接可能不可用。相反,您应该下载媒体文件并使用媒体播放器(可以处理在线资源(并通过setAudioStreamType(AudioManager.STREAM_ALARM)调整流类型。您可以使用adjustVolume或 AudioManager 的setStreamVolume来调整媒体播放器的音量,但您可能需要获得MODIFY_AUDIO_SETTINGS权限。请注意,如果您要在后台使用 YoutubePlayer 作为媒体流,您还应该获得覆盖 Do Not Dirturb 功能的ACCESS_NOTIFICATION_POLICY权限。

不确定YouTubePlayer API,但你可以使用ExoPlayer。该 API 允许您设置流类型(请参阅问题 #755(,并能够播放 youtube 视频。有一个带有 yt 视频的演示项目。

是的,在接收警报广播时,您可以使用窗口管理器和代码创建一个小窗口来播放YouTube视频。

最新更新