0

首先,我对目标 C 很陌生。我想在特定条件下播放声音和振动。我的 iPhone 4 没有静音,我检查了区分大小写并使用了 AVAudioPlay 和 SystemSound 来尝试播放文件,但即使振动也不起作用。AudioToobox 和 AVfoundation 以 .h 格式导入。音频在 iOS 模拟器上使用这两种方法播放。

下面是使用 SystemSound 的代码:

if (al == 1){
CFBundleRef mainBundle = CFBundleGetMainBundle();
        CFURLRef soundFileURLRef;
        soundFileURLRef =CFBundleCopyResourceURL(mainBundle, (CFStringRef) @"Alarm", CFSTR ("wav"), NULL);
        UInt32 soundID;
        AudioServicesCreateSystemSoundID(soundFileURLRef, &soundID);
        AudioServicesPlaySystemSound(soundID);
        AudioServicesPlayAlertSound(kSystemSoundID_Vibrate);}

并使用 AVAudioPlayer:

if (al == 1) {NSString *path = [[NSBundle mainBundle] pathForResource:@"alarmtwo" ofType:@"wav"];
        AVAudioPlayer *theAudio=[[AVAudioPlayer alloc] initWithContentsOfURL:[NSURL fileURLWithPath:path] error:NULL];        
        theAudio.numberOfLoops = 0;
        theAudio.volume = 1.5;
        [theAudio prepareToPlay];
        [theAudio play];}

顺便说一句,变量 al 在播放后设置为 0。我的编码是否错误,无法在设备本身上发出声音和振动?是否需要播放特定类型的 .wav 文件?任何帮助,将不胜感激。

4

1 回答 1

2

我遇到了同样的问题。实际上有第二个音量设置专门用于警报,至少在我的情况下被设置为静音,即使我的常规音量已经调高。查看设备上“设置”应用程序中的声音菜单,然后将其打开。

您可能不想将警报用于实际发布的应用程序,但如果声音实际播放很重要,因为它需要用户确保此单独的音频设置已启动。

于 2011-10-15T18:06:46.140 回答