13

如何将 ipod 库音乐文件放入 AVAudioPlayer?

4

5 回答 5

20

正如 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];
于 2010-08-22T05:56:58.120 回答
6

是的,您可以使用 SDK 播放 iPod 库中的歌曲,而无需求助于MPMusicPlayerController类。

更基本的类可以通过使用歌曲属性AVPlayer中的值来处理来自 iPod 库的音频文件。您必须做更多的工作才能正确设置所有内容,但可以完成。NSUrlMPMediaItemPropertyAssetURL

于 2010-07-18T00:59:06.123 回答
4

SDK 没有规定从 iPod 库中读取文件(您需要使用AVAudioPlayer它),这可能是出于反盗版的原因。要播放 iPod 库项目,请使用MPMusicPlayerController该类。

编辑:这不再准确。请参阅以下描述 AVPlayer 类使用的答案。

于 2009-12-23T18:31:46.927 回答
1

是否有可能获得有关 dB 计量的信息MPMusicPlayerController?也许AVAudioSession并行启动 for Recording 可以完成这项工作?我需要 dB 值来构建某种体积光谱仪。

于 2010-06-16T18:50:28.133 回答
1
- (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];
}
于 2010-12-21T13:47:44.013 回答