AVAudioPlayer .. он играет старый - PullRequest
0 голосов
/ 06 сентября 2011

m делает приложение, которое требует воспроизведения записанных аудиофайлов.Для этого у меня есть файл sound.h / .m и файл setting.h / .m В звуке у меня есть метод - обновить проигрыватель, который обновит мой аудио-проигрыватель, если будут созданы новые записанные файлы. Как следует ..

-(AVAudioPlayer *)updatePlayer
{
  if (!mAudioPlayer) 
  {
    self.mAudioPlayer = [[[AVAudioPlayer alloc]initWithContentsOfURL:mURLObj error:nil]autorelease];
  }
    return mAudioPlayer;
}

Теперь, вызывая этот метод каждый раз, когда создается новый записанный аудиофайл в settingcontroller .. как следует ..

-(void)hasNewRecorded:(BOOL)inFlag
{
    if (inFlag == YES)
    {
        mRecorder.mAudioPlayer = [[mRecorder updatePlayer]retain];
    }
    [mRecorder.mAudioPlayer release];
}

Я знаю, что где-то не так .. Ноне удалось решить проблему за последние 2 дня.Я с нетерпением жду вашей помощи.

1 Ответ

0 голосов
/ 06 сентября 2011

Вы запускаете новый аудиоплеер, только если его здесь нет,

if (!mAudioPlayer) 
  {
    self.mAudioPlayer = [[[AVAudioPlayer alloc]initWithContentsOfURL:mURLObj error:nil]autorelease];
  }

Новый игрок не будет выделен, поскольку игрок уже существует. Таким образом, старый аудиофайл продолжит воспроизводиться. Попробуйте установить точку прерывания внутри цикла for и проверьте, если это проблема, измените условие - освободите старый аудиоплеер и выделите новый.

...