【问题标题】:Is it possible to play the YouTubePlayer via STREAM_ALARM是否可以通过 STREAM_ALARM 播放 YouTubePlayer
【发布时间】:2017-07-26 08:19:44
【问题描述】:

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

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

是否有可能对 YouTubePlayer 做同样的事情,或者我必须通过音乐流播放它?

【问题讨论】:

    标签: android youtube-api


    【解决方案1】:

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

    【讨论】:

    • 我没有在后台播放 youtube 视频。我在 UI 线程上播放它。如果我无法加载视频,我会播放设备的默认铃声,所以我认为这不会有任何问题。就像我在这个问题上写的一样,我知道如何调整媒体播放器,但为了在媒体播放器上播放视频,我需要 YouTube 视频 rtsp 链接,我可以得到但不太确定是否可以YouTube 政策。由于到目前为止我没有解决方案,我想你的答案是正确的。
    【解决方案2】:

    不确定 YouTubePlayer API,但您可以 ExoPlayer。 API 允许您设置流类型(请参阅issue #755)并能够播放 youtube 视频。有一个demo projectyt videos

    【讨论】:

    • 为了使用 ExpoPlayer,我需要获取 youtube 视频 rtsp 链接,我不确定这在 youtube 政策中是否合法。
    • 我不知道。至少他们提供 YT 链接作为示例。
    【解决方案3】:

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

    【讨论】:

    • 我知道如何播放 youtube 视频。但是如何通过警报流在 YouTubePlayer 上播放视频?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-12-18
    相关资源
    最近更新 更多