我正在开发的iOS应用程序中有一个发射声音,虽然此时声音的音量是由铃声音量控制的,而不是主音量。我认为这是因为它是一个.caf文件,但在用mp3替换之后它没有改变它控制的音量类型。
我认为这是因为我正在使用AudioServicesCreateSystemSoundID,我假设它只适用于铃声音量。
- (IBAction)fire_rifle {
CFBundleRef mainBundle = CFBundleGetMainBundle();
CFURLRef soundFileURLRef;
soundFileURLRef = CFBundleCopyResourceURL(mainBundle, (CFStringRef) @"rifle", CFSTR ("caf"), NULL);
UInt32 soundID;
AudioServicesCreateSystemSoundID(soundFileURLRef, &soundID);
AudioServicesPlaySystemSound(soundID);
}
如何更改此代码以便使用主音量而不是铃声音量?
答案 0 :(得分:1)
我建议您查看AVAudioPlayer
。它适用于主音量,并有其他方便的方法来调整你可以利用的播放。
答案 1 :(得分:0)
如其他答案中所述,您可以使用AVAudioPlayer
。但是,这里有一些示例代码:
<AVAudioPlayerDelegate>
请务必加入此^^
- (void)myMethod{
AVAudioPlayer *data;
NSString *name = [[NSString alloc] initWithFormat:@"mySoundName"];
NSString *source = [[NSBundle mainBundle] pathForResource:name ofType:@"mp3"];
if (data) {
[data stop];
data = nil;
}
data=[[AVAudioPlayer alloc] initWithContentsOfURL:[NSURL fileURLWithPath: source] error:NULL];
data.delegate = self;
[data prepareToPlay];
[data play];
}
答案 2 :(得分:-1)
根据this,您无法以编程方式更改设备卷,但MPVolumeView(音量滑块)可用于更改设备音量,但仅通过用户交互。
如果您想要应用程序级别的卷,AVAudioPlayer就在那里。在这种情况下,您可以使用volume属性以编程方式设置应用程序卷(而不是设备卷)。