在iPhone上设置设备音量

时间:2010-03-06 16:12:00

标签: iphone avaudioplayer

我正在编写一个使用AVAudioPlayers播放声音的应用,我需要以绝对最大音量播放声音。是的,您可以设置AVAudioPlayer的相对音量,但如果用户关闭了设备音量,声音仍会静音播放。

我知道Apple说无法覆盖设备音量,但闹钟应用程序却能够以某种方式实现这一点 - 所以必须有办法。

我相信这可以通过使用音频队列来完成:

AudioQueueSetParameter(aq, kAudioQueueParam_Volume, 1.0);

但我的代码需要使用AVAudioPlayer播放声音,所以我认为这种方法不会有任何帮助。

还有一种方法可以使用MPVolumeView的未记录函数来实现此目的,但显然有人已经因使用此方法而拒绝了应用程序。

还有其他想法吗?

2 个答案:

答案 0 :(得分:6)

The comment from the anonymous for this site

float volume;
[[MPMusicPlayerController applicationMusicPlayer] setVolume:volume];

确实有用。

答案 1 :(得分:0)

我遇到了这个:

 MPVolumeView *volumeView1 = [[MPVolumeView alloc] initWithFrame:CGRectMake(4, 316, sk.size.width, sk.size.height)]; 
[volumeView1 sizeToFit]; 
[self.view addSubview:volumeView1]; 
[volumeView1 release]; 

我不完全确定它是否有用,但我相信它应该有效。看来你可能需要修改高度和宽度