0

我正在使用 SystemSound 的框架在我的应用程序中播放声音。对于带有 IOS3 的设备,它可以正常工作。但是最近我将操作系统更新到了 IOS4,但我遇到了一个奇怪的音量问题。现在我无法在游戏过程中改变声音的音量,似乎这个框架正在使用铃声音量,我无法在应用程序中改变这个音量。我对此有几个问题。

  1. 这是预期的行为还是我的代码可能有问题?
  2. 首先,为什么 IOS4 设备会发生这种情况,而不是早期版本。
  3. 是否有任何解决方法可以在不必使用其他框架的情况下修复它?

我正在使用的代码是这样的:

SystemSoundID aSoundID;
OSStatus error = AudioServicesCreateSystemSoundID((CFURLRef)aFileURL, &aSoundID);

if (error == kAudioServicesNoError)
     self.soundID = aSoundID;
.

.

.

AudioServicesPlaySystemSound(self.soundID);

我将衷心感谢您的帮助!

谢谢,

胡安·巴勃罗

4

2 回答 2

2

我自己没有使用过音频,但我确实发现了一些看起来相关的有趣的东西(看看没有人真正回答你的问题)。

我可能误解了这个问题,但根据这个问题的答案,如果你正在播放系统声音,你就无法控制它。

但是,AVAudioPlayer 类应该具有控制声音和音量等所需的一切。尝试使用-initWithContentsOfURL:error:–prepareToPlay-play方法以及volume属性 - 我认为它会让你到达你想去的地方。

于 2010-07-08T19:43:44.063 回答
0

1 & 2)我在 iOS 4 上遇到了同样的问题,我认为这是 4.0+ 中的预期行为我发现这是因为我没有设置会话类别:

3)我做了以下事情,现在它正在工作。

NSError *setCategoryError = nil;  
[[AVAudioSession sharedInstance] setCategory: AVAudioSessionCategoryPlayback error: &setCategoryError];  

if (setCategoryError) { 
 //handle error
}

http://developer.apple.com/library/ios/#documentation/Audio/Conceptual/AudioSessionProgrammingGuide/Cookbook/Cookbook.html#//apple_ref/doc/uid/TP40007875-CH6-SW6

于 2010-10-13T00:43:02.590 回答