Как использовать MPMusicPlayerController с AVAudioPlayer - PullRequest
2 голосов
/ 03 сентября 2010

Я пытаюсь воспроизвести аудио в приложении с помощью ipod, код, который я использую для воспроизведения аудиофайла:

Код:

       [[AVAudioSession sharedInstance] setCategory: AVAudioSessionCategoryPlayback error: nil];
       UInt32 doSetProperty = 1;
       AudioSessionSetProperty (kAudioSessionProperty_OverrideCategoryMixWithOthers,  sizeof(doSetProperty), &doSetProperty);
       [[AVAudioSession sharedInstance] setActive: YES error: nil];

       if(error)
       {
           NSLog(@"Some error happened");
       }

    NSString *path = [[NSBundle mainBundle] pathForResource:effect ofType:type];
    myPlayer = [[AVAudioPlayer alloc] initWithContentsOfURL:[NSURL fileURLWithPath:path] error:NULL];
    myPlayer.delegate = self;
    myPlayer.numberOfLoops = -2;
    myPlayer.volume = 1.0f;
    [myPlayer play];

и для воспроизведения музыки ipod, которую я использую

Код:

player = [MPMusicPlayerController iPodMusicPlayer];

Мой iPod воспроизводится нормально до тех пор, пока не начнет воспроизводиться звук, но как только звук остановится, я не смог вернуться к iPod для воспроизведения. Я использую

Код:

NSString *value = [[NSUserDefaults standardUserDefaults] stringForKey:@"sound"];

if([value compare:@"ON"] == NSOrderedSame && myPlayer != nil)
{
    [myPlayer stop];
    [myPlayer release];
    myPlayer = nil;
}

NSError *error = nil;

[[AVAudioSession sharedInstance] setCategory:AVAudioSessionCategoryAmbient error:&error];

if(error)
{
    NSLog(@"Some error happened");
}

чтобы остановить звук, а затем просто позвоните

Код:

 [player play];

для воспроизведения музыки ipod, но она не воспроизводит музыку, она говорит, что заголовок имеет значение null.

Буду очень признателен, если кто-нибудь поможет мне с этим.

С уважением, Анкур

Ответы [ 3 ]

1 голос
/ 11 января 2012

Невозможно воспроизвести звук с iPod в AVAudioPlayer.Вам необходимо преобразовать ссылку на библиотеку Asset из ipod, используя * AVURLAsset, в mp3 или wav и сохранить ее в библиотеке документов.IOS.5 в настоящее время имеет ошибку в преобразовании (AudioExportSession) из ipod в mp3 файл, поэтому это НЕ ВОЗМОЖНО.Сожалею.

1 голос
/ 09 мая 2011

Я предлагаю перенести настройку аудио-сеанса (включая категорию Ambient) в didFinishLaunchingWithOptions вашего делегата приложения и вообще не использовать категорию Playback.Вы по-прежнему можете воспроизводить звуки AVAudio просто с настройкой Ambient.

Если вы хотите убивать музыку iPod при каждом воспроизведении звуков AV, вам следует использовать только категорию «Воспроизведение».(Я не совсем уверен, что вы пытаетесь сделать.)

Ошибка, возникающая при попытке возобновить воспроизведение музыки с iPod, предполагает, что ваш объект MPMusicPlayerController сбрасывает свою очередь песен, когда он остановлен.звуками AVAudio, и вам придется заново настраивать MP player.«Title is null» определенно звучит как свисающий указатель или что-то подобное в MP player.

0 голосов
/ 25 октября 2017

Вам необходимо возобновить проигрыватель iPod после myPlayer завершения воспроизведения.

-(void) audioPlayerDidFinishPlaying:(AVAudioPlayer *)player successfully:(BOOL)flag {
    [player play];
}
...