IPhone OS4,无法使用SystemSounds调整音量设置

时间:2010-07-08 19:01:31

标签: iphone audio ios4 volume

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

  1. 这是预期的行为还是我的代码可能有问题?
  2. 首先,为什么会出现IOS4设备,而不是早期版本。
  3. 是否有任何解决方法可以修复它而无需使用其他框架?
  4. 我使用的代码是这样的:

    SystemSoundID aSoundID;
    OSStatus error = AudioServicesCreateSystemSoundID((CFURLRef)aFileURL, &aSoundID);
    
    if (error == kAudioServicesNoError)
         self.soundID = aSoundID;
    .
    
    .
    
    .
    
    AudioServicesPlaySystemSound(self.soundID);
    

    我真的很感谢你的帮助!

    谢谢,

    Juan Pablo

2 个答案:

答案 0 :(得分:2)

我自己没有使用过音频,但我确实找到了一些看似相关的有趣内容(看看目前还没有人真正回答你的问题)。

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

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

答案 1 :(得分:0)

1& 2)我对iOS 4有同样的问题,我认为这是4.0+的预期行为我发现这是因为我没有设置Session类别:

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