我已经建立,播放大量声音的简单方法的应用:
AudioServicesPlaySystemSound(someSoundID);
当我使用设备的音量键增加或减小音量,其实我改卷是手机的铃声音量。 所以,如果你减少并退出应用程序,然后你的手机会响悄然...
有一种简单的方法来覆盖这一点,实际上改变我的应用程序的音量?
我已经建立,播放大量声音的简单方法的应用:
AudioServicesPlaySystemSound(someSoundID);
当我使用设备的音量键增加或减小音量,其实我改卷是手机的铃声音量。 所以,如果你减少并退出应用程序,然后你的手机会响悄然...
有一种简单的方法来覆盖这一点,实际上改变我的应用程序的音量?
我已经找到了解决方案,我认为将是一个普遍的问题。 因此,这里是你的应用程序都可以有自己的音量,而不是与用户的铃声音量一塌糊涂,即使你只是在玩耍的声音作为系统声音。
你必须导入AVFoundation框架,并在撑加载整个时间你的应用程序运行(或视图,或应用代表)你有初始化AVAudioPlayer,给它一个文件播放,并将其设置为“prepareToPlay”它的对象。 ..
这是我在我的主视图做(即用于加载其他意见子视图):在头文件:
#import <AVFoundation/AVFoundation.h>
@interface MainViewController : UIViewController {
AVAudioPlayer *volumeOverridePlayer;
}
@property (nonatomic, retain) AVAudioPlayer *volumeOverridePlayer;
在实现文件中:
@synthesize volumeOverridePlayer;
- (void)viewDidLoad
{
[super viewDidLoad];
volumeOverridePlayer = [[AVAudioPlayer alloc] initWithContentsOfURL:[NSURL URLWithString:[[NSBundle mainBundle] pathForResource:@"something" ofType:@"caf"]] error:nil];
[volumeOverridePlayer prepareToPlay];
//...
}
刚刚离开准备播放文件,并享受自己的音量控制播放器,而无需通过它来播放声音! ,当然,记得要释放它的dealloc中。
从我可以苹果的文档中看到,这里有两个问题。 1.应用程序和OS /硬件体积只能由硬件/用户控制。 2.您正在播放系统声音。 我认为系统的声音是由OS管辖,所以你的运气了这里,除非你是打实际的声音文件。 如果你可以使用声音文件,再看看这里 。
祝好运!