Воспроизведение файлов WAV с помощью AudioServices на iPhone - PullRequest
0 голосов
/ 19 апреля 2010

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

Я добавил каркас AudioToolbox. В мой файл .h я включил файл Audiotoolbox.h и имеет следующие объявления

//Beep Sound
SystemSoundID   soundFileObject;
SystemSoundID   recycleFileObject;

В моем .m файле я регистрирую оба файла wav следующим образом

CFURLRef soundFileURLRef = CFBundleCopyResourceURL (CFBundleGetMainBundle (),CFSTR ("Beep"),CFSTR ("wav"),NULL );
AudioServicesCreateSystemSoundID (soundFileURLRef,&soundFileObject );

CFURLRef soundFileURLRef2 = CFBundleCopyResourceURL (CFBundleGetMainBundle (),CFSTR ("Recycle"),CFSTR ("wav"),NULL );
AudioServicesCreateSystemSoundID (soundFileURLRef2,&recycleFileObject );

И я написал два метода для воспроизведения каждого файла в отдельности.

-(void)playBeepSound
{
    NSLog(@"Beep sound called : %d", soundFileObject);
    AudioServicesPlaySystemSound (soundFileObject);
}


-(void)playRecycleSound
{
    NSLog(@"Recycle sound called : %d", recycleFileObject);
    AudioServicesPlaySystemSound (recycleFileObject);
}

Но я могу воспроизводить только звуковой сигнал, но не второй звуковой файл WAV.

В чем ошибка ???

Спасибо

1 Ответ

0 голосов
/ 19 апреля 2010

На вашем месте я бы обернул код Audio Toolbox в классе, чтобы вы могли выделять общий код и воспроизводить звуки с большим комфортом ( пример кода ). Это также может решить вашу проблему, поскольку кажется, что где-то небольшая опечатка - пример кода, который вы нам дали, выглядит хорошо. (Вы пытались записать все? Нет нуля, все вызывается, как и ожидалось? Вы пытаетесь воспроизвести оба звука одновременно или между ними есть задержка? Имеет ли значение, какой звук запускается первым?)

...