Как я могу получить музыкальный файл библиотеки ipod в AVAudioPlayer?
Как воспроизвести файл библиотеки iPod в AVPlayer
Ответ 1
В SDK нет предустановок для чтения файлов из библиотеки iPod (как вам нужно сделать, чтобы использовать с ним AVAudioPlayer
), возможно, по причинам, связанным с пиратством. Для воспроизведения элементов библиотеки iPod используйте класс MPMusicPlayerController
.
Изменить: это более неточно. См. ниже ответы, которые описывают использование класса AVPlayer.
Ответ 2
Как говорит Дэвид, есть больше работы, чем это, например, вам нужно управлять воспроизведением следующего трека в коллекции элементов мультимедиа, но вот один из способов сделать это с помощью набора элементов MPMediaItems, выбранных пользователем из 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];
Ответ 3
Да, вы можете воспроизводить песни из библиотеки iPod с помощью SDK, не прибегая к классу MPMusicPlayerController
.
Более простой класс AVPlayer
может обрабатывать аудиофайлы из библиотеки iPod, используя значение NSUrl
из свойства песни MPMediaItemPropertyAssetURL
. Вы должны сделать гораздо больше работы, чтобы все было правильно настроено, но это можно сделать.
Ответ 4
Есть ли возможность получить информацию о дБ-замерах в MPMusicPlayerController
? Возможно, запуск AVAudioSession
для записи параллельно будет выполнять работу? Мне нужны дБ-значения для создания своего рода объем-спектрографа.
Ответ 5
- (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];
}