AVAudioPlayer和AirPlay – 可能吗?
我试图确定是否可以使用AVAudioPlayer
类切换AirPlay支持。
从我读到的:
AirPlay是一项技术,可让您的应用程序将audio传输至Apple TV和第三方AirPlay扬声器和接收器。 AirPlay支持内置于
AV Foundation
框架和Core Audio
框架系列。 您使用这些框架播放的任何audio内容自动符合AirPlay发行条件。 一旦用户select使用AirPlay播放audio,系统将自动路由该audio。 [ Ref ]
基于这个信息; 它应该与AVAudioPlayer一起工作,因为它是AVFoundation
框架的一部分; 但我似乎无法find任何支持这一假设的文件。
我也发现一些文档说可以用MPMoviePlayerViewController
完成:
使用AirPlay播放video的支持包含在
MPMoviePlayerController
类中。 此支持允许您在启用AirPlay的硬件(如Apple TV)上播放基于video的内容。 当活动MPMoviePlayerController
对象的allowsAirPlay
属性设置为YES
且设备处于启用AirPlay的硬件范围内时,电影播放器向用户显示将video发送到该硬件的控件。 [ Ref ]
似乎这里有一些矛盾的信息。 有谁知道是否有可能使用AVAudioPlayer
路由到AirPlay或我们被迫使用MPMoviePlayerController
类?
非常感谢。
回答我自己的问题。 它看起来像简单的方法是添加自定义音量控制器在这里提到:[ 参考 ],它将与MPAudioPlayer
完美的MPAudioPlayer
。 它只是一个定位的问题。
使用界面生成器很容易,所以你可以很容易地使用自动布局。 将任何你想要一个UIView对象放到你的主视图上,然后创build一个MPVolumeView的子类并为你的UIView对象使用这个自定义类
和MPVolumeView类的VolumeView子类
import UIKit import MediaPlayer class VolumeView: MPVolumeView { convenience init() { self.init() } override func drawRect(rect: CGRect) { self.showsVolumeSlider = false self.layer.cornerRadius = 10.0 self.clipsToBounds = true }
}