当你的应用想要开始时,如何淡化任何声音?

时间:2010-10-06 17:41:47

标签: iphone objective-c

当用户想要使用你的应用程序时,是否有任何方法可以淡化iPod音乐等声音?

感谢。

2 个答案:

答案 0 :(得分:4)

一些快速示例代码可以执行此操作(当您的应用变为活动状态或启动时从某处调用,并且不要忘记链接到AVFoundation框架):

#import <AVFoundation/AVAudioSession.h>

// ...

- (void)setupAudioSession
{
  NSError* error = nil;
  AVAudioSession* session = [AVAudioSession sharedInstance];
  // see documentation for delegate methods you should handle
  [session setDelegate:self];
  // This category will duck and cancel background category, but can be configured
  // later for mixing if you want (making it pretty versatile); see documentation
  // on categories for other options
  if( ![session setCategory:AVAudioSessionCategoryPlayback error:&error] ) {
    // handle error
    NSLog(@"Error setting audio category: %@, %@", error, [error userInfo]);
  }
  if( ![session setActive:YES error:&error] ) {
    // handle error
    NSLog(@"Error setting audio session as active: %@", error);
  }
}

答案 1 :(得分:2)

如果您配置并激活应用程序将播放声音的某些音频会话类型(请参阅Apple的音频会话参考),操作系统将淡出当前使用音频输出的任何后台应用程序的声音,以便您的应用程序将具有可用资源。