我已经建立,播放大量声音的简单方法的应用:覆盖振铃音量应用程式
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中释放它。
我发布这篇文章后很长一段时间回来,想说我发现它只适用于降低音量和不增加它......无论如何,我一直在使用AVAudioplayers来播放我的声音很少(如果有的话)通过警报播放它们。 – Dimitris 2009-10-22 16:56:42