小编Ben*_*vic的帖子

setVolume无法使用AVMutableAudioMixInputParameters从手机本地iPod库播放

我目前正在尝试使用AVPlayer从手机本地iPod库播放音乐,而不是使用应用程序控制器播放MPMusicPlayerController.

我可以使用和MPMediaQuery从本地iPod lib中选择一个曲目,但是当我尝试使用AVMutableAudioMixInputParameters在较低级别启动音频时,它似乎根本不会降低音量.

我使用AVPlayer而不是MPMusicPlayerController的原因是我在后台同时播放其他音频而MPMusicPlayerController无法播放,因为使用AVPlayer的现有音频文件正在占用硬件.我目前的代码是:

// just blindly select all music for now.
MPMediaQuery *everything = [[MPMediaQuery alloc] init];

NSArray *itemsFromGenericQuery = [everything items];
MPMediaItem *song;
NSMutableArray *array = [[NSMutableArray alloc] init];

for (song in itemsFromGenericQuery) 
{
    [array addObject:song];
}
Run Code Online (Sandbox Code Playgroud)

所以此时数组是我的lib中的一个轨道数组.

现在抓住一个并使用AVPlayer播放它:

// grab the first song off the array
MPMediaItem *song = [array objectAtIndex:0];
NSURL *assetURL = [song valueForProperty:MPMediaItemPropertyAssetURL];
AVURLAsset *asset = [AVURLAsset URLAssetWithURL:assetURL options:nil];

NSArray *audioTracks = [asset tracksWithMediaType:AVMediaTypeAudio];
AVAssetTrack *track = [audioTracks objectAtIndex:0];

NSMutableArray *allAudioParams = [NSMutableArray array]; …
Run Code Online (Sandbox Code Playgroud)

iphone volume objective-c mpmediaquery avplayer

5
推荐指数
1
解决办法
2648
查看次数

AVAudioPlayer和AirPlay - 有可能吗?

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

据我所读:

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

根据这些信息; 它应该与AVAudioPlayer一起使用,因为它是AVFoundation框架的一部分; 但我似乎无法找到支持这一假设的任何文件.

我还发现了一些文档说它可以用MPMoviePlayerViewController:

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

似乎这里有一些相互矛盾的信息.有谁知道它是否可能用于AVAudioPlayer路由到AirPlay或我们被迫使用MPMoviePlayerController该类?

非常感谢.

avfoundation avaudioplayer ios airplay

5
推荐指数
1
解决办法
3670
查看次数