音频和振动在模拟器中工作,而不是在ios设备上

时间:2011-10-08 20:59:41

标签: objective-c ios xcode audio vibrate

首先,我对目标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文件?任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:2)

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

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