在iPhone中使用AudioServices播放wav文件

时间:2010-04-19 12:27:30

标签: iphone objective-c wav audiotoolbox

我正在尝试在我的应用程序中播放两个.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);
}

但我只能播放Beep声音,但不能播放第二个声音wav文件。

错误是什么???

由于

1 个答案:

答案 0 :(得分:0)

如果我是你,我会将Audio Toolbox代码包装在一个类中,这样你就可以分解公共代码并更舒适地播放声音(example code)。这也可以解决你的问题,因为它似乎是一个小错字 - 你给我们的示例代码看起来很好。 (您是否尝试记录所有内容?没有空值,所有内容都按预期调用?您是否尝试同时播放两种声音,或者它们之间是否存在延迟?首先运行哪种声音是否重要?)