如何将 ipod 库音乐文件放入 AVAudioPlayer?
5 回答
正如 David 提到的,还有比这更多的工作要做,例如,您必须管理播放媒体项目集合中的下一首曲目,但这是使用用户从 iPod Picker 中选择的一组 MPMediaItems 的一种方法. AssetURL 是您使用的,它为您提供 MP3 文件的路径(例如 ipod-library://item/item.mp3?id=-6889145242935454020)
NSURL *anUrl = [[mediaItems objectAtIndex: 0] valueForProperty:MPMediaItemPropertyAssetURL];
self.audioPlayerMusic = [[[AVPlayer alloc] initWithURL:anUrl] retain];
[self.audioPlayerMusic play];
是的,您可以使用 SDK 播放 iPod 库中的歌曲,而无需求助于MPMusicPlayerController
类。
更基本的类可以通过使用歌曲属性AVPlayer
中的值来处理来自 iPod 库的音频文件。您必须做更多的工作才能正确设置所有内容,但可以完成。NSUrl
MPMediaItemPropertyAssetURL
SDK 没有规定从 iPod 库中读取文件(您需要使用AVAudioPlayer
它),这可能是出于反盗版的原因。要播放 iPod 库项目,请使用MPMusicPlayerController
该类。
编辑:这不再准确。请参阅以下描述 AVPlayer 类使用的答案。
是否有可能获得有关 dB 计量的信息MPMusicPlayerController
?也许AVAudioSession
并行启动 for Recording 可以完成这项工作?我需要 dB 值来构建某种体积光谱仪。
- (void)mediaPicker:(MPMediaPickerController *)mediaPicker didPickMediaItems:(MPMediaItemCollection *)mediaItemCollection {
NSURL *url = [[mediaItemCollection.items objectAtIndex:0] valueForProperty:MPMediaItemPropertyAssetURL];
NSError *error;
self.player = [[AVAudioPlayer alloc] url error:&error];
if (!error) {
[self.player prepareToPlay];
[self.player play];
}
[mediaPicker dismissModalViewControllerAnimated:YES];
}