Как воспроизвести файл библиотеки iPod в AVPlayer
-
21-09-2019 - |
Вопрос
Как я могу загрузить музыкальный файл из библиотеки iPod в AVAudioPlayer?
Решение
SDK не предусматривает чтения файлов из библиотеки iPod (что вам нужно было бы сделать, чтобы использовать AVAudioPlayer
с ним), вероятно, по соображениям борьбы с пиратством.Для воспроизведения элементов библиотеки iPod используйте MPMusicPlayerController
класс.
Редактировать:Это уже не совсем точно. Смотрите приведенные ниже ответы, в которых описывается использование класса AVPlayer.
Другие советы
Как упоминает Дэвид, предстоит проделать еще больше работы, например, вам нужно управлять воспроизведением следующего трека в коллекции мультимедийных элементов, но вот один из способов сделать это с помощью набора MPMediaItems, выбранного пользователем в окне выбора iPod.assetURL - это то, что вы используете, оно дает вам путь к файлу MP3 (напримербиблиотека ipod://item/item.mp3?id=-6889145242935454020)
NSURL *anUrl = [[mediaItems objectAtIndex: 0] valueForProperty:MPMediaItemPropertyAssetURL];
self.audioPlayerMusic = [[[AVPlayer alloc] initWithURL:anUrl] retain];
[self.audioPlayerMusic play];
Да, вы можете воспроизводить песни из библиотеки iPod с помощью SDK, не прибегая к MPMusicPlayerController
класс.
Чем более базовым AVPlayer
класс может обрабатывать аудиофайлы из библиотеки iPod с помощью NSUrl
ценность из песни MPMediaItemPropertyAssetURL
собственность.Вам придется проделать гораздо больше работы, чтобы все настроить должным образом, но это можно сделать.
Есть ли какая-либо возможность получить информацию о dB-measuring в MPMusicPlayerController
?Возможно, инициируя AVAudioSession
ибо параллельная запись справилась бы с этой задачей??Мне нужны значения 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];
}