使用 YouTube Helper Library iOS 在后台播放 youtube 视频
Posted
技术标签:
【中文标题】使用 YouTube Helper Library iOS 在后台播放 youtube 视频【英文标题】:Play youtube video in Background using YouTube Helper Library iOS 【发布时间】:2014-12-02 20:36:52 【问题描述】:我正在使用 YouTube 助手库在我的 ios 应用程序上播放 YouTube 视频Here are link of Library 我只需要一种方法来继续在后台播放音频(或视频), 因此,当用户单击主页按钮时,我需要他能够听到声音 视频, 即使他锁定了他的设备,我也需要他能够控制声音和 单击下一步和返回按钮进行音频播放.. 我如何在 YouTube Helper Library 上实现这一点?
注意:许多应用程序都是这样做的,并且它们存在于应用程序商店中,例如 iMusic、Video Tube、MusicTV、MB2
【问题讨论】:
上述库使用webview
播放视频。我认为在制作自定义视频播放器之前没有办法在后台播放视频。link..
【参考方案1】:
播放背景视频(或语音)违反YouTube TOS。你肯定不能用这个库来做到这一点,即使你想出了一个解决方法,你的应用也会因为违反 TOS 而被下架。
【讨论】:
感谢您的回答,但许多应用程序都会这样做,请在应用程序商店中搜索以下应用程序... iMusic、Video Tube、MusicTV、MB2 所有这些应用程序都在后台播放 youtube 视频.. 有什么建议吗? ? @Ibrahim Ulukaya 从未向我们提供指向某些服务条款页面的通用链接。原因有两个:1. OP 的预期结果究竟在哪里违反了服务条款? (自己找不到) 2. 服务条款一直在变化..【参考方案2】:关于在后台播放声音:
您必须将 AVAudioSession 类别设置为 AVAudioSessionCategoryPlayback 并将音频值添加到您的信息属性列表文件中的 UIBackgroundModes 键。
NSError *setCategoryError = nil;
[[AVAudioSession sharedInstance] setCategory: AVAudioSessionCategoryPlayback error: &setCategoryError];
我仅在 iOS 7 及更高版本上测试过此代码,因此它可能不适用于早期版本。
来自 Apple 文档:
AVAudioSessionCategoryPlayback 播放录制音乐的类别 或其他对成功使用您的应用至关重要的声音。
使用此类别时,您的应用音频会继续以 Silent 开关设置为静音或屏幕锁定时。 (这个开关叫做 iPhone 上的响铃/静音开关。) 应用程序过渡到背景(例如,当屏幕 锁),将音频值添加到您的 UIBackgroundModes 键 信息属性列表文件。
请参阅参考资料 here 和 here
【讨论】:
您确定这适用于 YouTube 助手库吗?我知道如果我们想播放 mp3 文件 ..etc,这是解决方案,我尝试了一下,但它不适用于这个库.. 有什么建议吗?? 我正在使用这个库,对于我的应用程序,它正在使用这些设置。我还添加了所需背景模式的信息 plist:应用程序使用 AirPlay 播放音频或流式传输音频/视频。我在 applicationDidFinishLaunchingWithOptions: 中设置类别,如果我删除它,它就可以工作 - 它停止工作。 好吧,我会试试的,但请告诉我,用户可以点击下一步和后退按钮,并且一切正常,我的意思是当屏幕锁定或后台应用时?? 它在后台 home/lock 中工作,但有一个缺陷 - 它会暂停半秒,然后正常播放。控制按钮是可用的,但您应该处理这些操作。当您在后台按下按钮时,将调用webView:shouldStartLoadWithRequest:
,并在request.URL
中使用状态代码(0 - 视频结束)。如果您处理委托方法playerView:didChangeToState:
,则可以实现所需的行为。我不确定如何获得按下的确切按钮,因为这不是我的应用程序中的关键,而且我还没有寻找解决方案。
顺便说一句,可以通过此功能控制锁定情绪或背景情绪的下一步和返回按钮 - (void)remoteControlReceivedWithEvent:(UIEvent *)event【参考方案3】:
您需要在应用进入后台时启用它。记得检查你的应用是否在后台
func playerView(_ playerView: YTPlayerView, didChangeTo state: YTPlayerState)
if state == .paused
playerView.playVideo()
【讨论】:
以上是关于使用 YouTube Helper Library iOS 在后台播放 youtube 视频的主要内容,如果未能解决你的问题,请参考以下文章
用youtube-ios-player-helper播放视频
CodeIgniter-YouTube-API-Library 使用注册帐户进行身份验证
How to Creat DLL(Dynamic link library)