如何在AVPlayer中播放iPod音乐库文件

13

我怎样将iPod音乐库文件导入到AVAudioPlayer中?


我建议您查看http://superuser.com/,并且您可能需要提供更多详细信息。您使用的是哪个程序,迄今为止您是否进行了任何研究? - Guvante
9
AVAudioPlayer是用于在iPhone上播放音频的类,当你进行iPhone编程时会使用到它。这个问题显然与编程有关。 - aehiilrs
5个回答

20

正如David所提到的,这里需要做的工作不仅如此,例如您还需要管理播放媒体项集合中的下一首曲目,但以下是一种使用用户从iPod选择器中选择的一组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];

抱歉,AVPlayer无法播放声音。需要帮助。 - Arpit B Parekh
1
这种方法 不能 用于 DRM 保护的 歌曲(例如 Apple Music 订阅中的歌曲)或者那些不在本地设备上 离线 可用而只存在于云端的歌曲。如果您想要检查音乐是否受到 DRM 保护,或以正确的方式播放 DRM 受保护的音乐,请阅读我在这里提供的详细答案:https://dev59.com/o2035IYBdhLWcg3wMM8G#47694472 - Mohit Singh
谢谢回复。您在这里解释了如何检测DRM轨道。请告诉我如何播放它。我正在使用AVPlayer,但它无法播放。我可以使用MPMusicPlayer播放,但我的要求是必须使用AVFoundation播放。 - Arpit B Parekh

6

是的,您可以使用SDK播放iPod库中的歌曲,而不必使用MPMusicPlayerController类。

更基本的AVPlayer类可以通过使用歌曲的MPMediaItemPropertyAssetURL属性中的NSUrl值处理来自iPod库的音频文件。您需要做更多的工作来正确设置所有内容,但是这是可行的。


我不知道为什么,但使用AVAplat=yer它不起作用。 - Arpit B Parekh

4
SDK没有提供从iPod库中读取文件的功能(您需要这样做才能使用AVAudioPlayer),可能是出于反盗版的原因。要播放iPod库中的项目,请使用MPMusicPlayerController类。 编辑:这已不再准确。请参见下面的答案,其中描述了AVPlayer类的使用。

2
这不是真的,请查看其他答案,了解如何访问iPod库以供AVAudioPlayer使用。 - Bryce Kahle
这在2009年12月可能是正确的,但正如Steve Tranby在他的答案中所解释的那样,现在是可行的。 - prendio2

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

1

MPMusicPlayerController中是否有获取dB计量信息的可能性?也许可以同时启动一个用于录制的AVAudioSession来完成这项工作?我需要dB值来构建某种音量频谱图。


1
2年前的问题,但我将为其他人添加答案。要从音频中获取dB级别,请使用Core-Audio的AudioStreamBasicDescription(https://developer.apple.com/library/mac/documentation/musicaudio/reference/CoreAudioDataTypesRef/Reference/reference.html#//apple_ref/doc/uid/TP40004488-CH3-SW2),并以数据流的形式使用音频数据。我正在使用iPod库的URL作为资产,并使用URL上的数据与核心音频一起使用。 - some_id
你能再详细解释一下这个答案吗? - the-a-train
1
@Helium3:您的解决方案是否也适用于IOS10和DRM受保护的文件? - Ing. Ron

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接