5

我正在尝试确定是否可以使用AVAudioPlayer该类切换 AirPlay 支持。

从我读到的:

AirPlay 是一种技术,可让您的应用程序将音频流式传输到 Apple TV 以及第三方 AirPlay 扬声器和接收器。AirPlay 支持内置于AV Foundation框架和Core Audio框架系列中。您使用这些框架播放的任何音频内容都会自动符合 AirPlay 分发条件。一旦用户选择使用 AirPlay 播放您的音频,系统就会自动路由。[参考]

基于此信息;它应该与 AVAudioPlayer 一起使用,因为它是AVFoundation框架的一部分;但我似乎找不到任何支持这一假设的文档。

我还发现一些文档说它可以通过以下方式完成MPMoviePlayerViewController

课程中包含对使用 AirPlay 播放视频的支持MPMoviePlayerController。此支持允许您在 Apple TV 等支持 AirPlay 的硬件上播放基于视频的内容。当allowsAirPlay活动MPMoviePlayerController对象的属性设置为YES并且设备位于支持 AirPlay 的硬件范围内时,电影播放器​​会向用户显示用于将视频发送到该硬件的控件。[参考]

似乎这里有一些相互矛盾的信息。有谁知道它是否可以AVAudioPlayer用来路由到 AirPlay 或者我们是否被迫使用该MPMoviePlayerController课程?

非常感谢。

4

3 回答 3

2

回答我自己的问题。看起来简单的方法是添加这里提到的自定义音量控制器:[ ref ],它将与MPAudioPlayer. 它只是定位它的问题。

于 2011-05-05T05:13:06.787 回答
0

是的,AVAudioPlayer 可与 AirPlay 一起使用。然而,像 audioPlayerDidFinishPlaying 这样的事件是经过延迟校正的(即从您的应用程序的角度来看,它们“为时已晚”发生 2 秒)有一个怪癖,如果您依赖它们以正确的顺序与其他机制一起发生,这可能是一个问题在您的应用程序中。

于 2021-03-22T15:45:33.827 回答
0

使用 Interface Builder 非常简单,因此您可以轻松利用 Auto Layout。将 UIView 对象放置在主视图上的任何位置,然后创建 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

}

}

于 2015-08-16T14:45:18.280 回答