如何在AVPlayer中播放iPod库文件

时间:2009-12-23 15:58:46

标签: iphone avaudioplayer mpmusicplayercontroller

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

5 个答案:

答案 0 :(得分:20)

正如大卫所提到的,还有更多的工作要做,比如你需要管理在媒体项目集合中播放下一首曲目,但是这里有一种方法可以使用一组用户从中选择的MPMediaItem来完成iPod Picker。您使用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];

答案 1 :(得分:5)

是的,您可以使用SDK播放iPod库中的歌曲而无需使用MPMusicPlayerController课程。

更基本的AVPlayer类可以使用歌曲NSUrl属性中的MPMediaItemPropertyAssetURL值处理来自iPod库的音频文件。你必须做更多的工作才能正确设置,但是可以做到。

答案 2 :(得分:3)

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

编辑:这不再准确。请参阅以下答案,其中介绍了AVPlayer类的使用。

答案 3 :(得分:0)

是否有可能在MPMusicPlayerController中获取有关dB测量的信息?也许并行启动AVAudioSession录音可以完成工作吗?我需要dB值来构建某种体积光谱仪。

答案 4 :(得分:0)

- (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];
}