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 } 

}