2012-01-01 1 views
0

Я пытаюсь позволить пользователю выбрать песню из библиотеки iPod. После получения URL-адреса песни, я пытаюсь воспроизвести его, используя библиотеку CocosDenshion, но я не получаю никакого звука.Воспроизведение песен iPod Library с использованием CocosDenshion

Вот пример кода MPMediaPickerControllerDelegate:

#pragma mark MPMediaPickerControllerDelegate 
- (void)mediaPicker: (MPMediaPickerController *)mediaPicker 
    didPickMediaItems:(MPMediaItemCollection *)mediaItemCollection { 
    [self dismissModalViewControllerAnimated:YES]; 
    if ([mediaItemCollection count] < 1) { 
     return; 
    } 
    [song release]; 
    song = [[[mediaItemCollection items] objectAtIndex:0] retain]; 


    NSURL *itemURL = [song valueForProperty:MPMediaItemPropertyAssetURL]; 
    fileURL = [itemURL absoluteString]; 

    [[SimpleAudioEngine sharedEngine] preloadEffect:fileURL]; 
} 

и вот обработчик для кнопки, которая играет звук.

- (IBAction)playSong { 

    [[SimpleAudioEngine sharedEngine] playEffect:fileURL pitch:1.0f pan:0.0f gain:1.0f]; 
} 

Может кто-нибудь сказать мне, что происходит не так. Мне нужно изменить высоту выбранной песни. Вот почему я использую библиотеку CocosDenshion.

ответ

1

Посмотрите URL-адрес, возвращенный [song valueForProperty:MPMediaItemPropertyAssetURL] в отладчике. Это не стандартный URL файловой системы, а настраиваемый URL-адрес, указывающий на библиотеку активов, поэтому неудивительно, что CocosDenshion не может его открыть.

Чтобы воспроизвести эту композицию, вам необходимо использовать AV Foundation (возможно, AVAudioPlayer). Или используйте AV Foundation, чтобы сначала преобразовать песню в «настоящий» файл, а затем воспроизвести ее с помощью Cocos Denshion, но это, вероятно, намного сложнее первого варианта.

Документация MPMediaItemPropertyAssetURL ясно говорит об этом тоже:

Использование в URL вне рамок Фонда AV не поддерживается.

+0

Обновление: AVPlayer может воспроизводить URL-адрес библиотеки iPod. AVAudioPlayer не может воспроизводить URL-адрес библиотеки iPod. –