2011-09-12 27 views
1

我有一个应用程序商店中的闹钟应用程序,并希望设置它,以便用户无法降低音量(使用侧按钮),而警报听起来。我无法找到如何在文档中做到这一点,我错过了什么?锁定真正的iPhone音量在应用程序内

iHandySoft公司的闹钟免费(流行的绿色的)这样做是可能的。如果将主控制器的振铃音量降至0,并将iPhone设置为静音,那么闹钟仍会播放完整歌曲。然后你会发现你的主音量已经提高到80%。

我目前使用AV音频。

所有帮助非常感谢!

+0

OK,我只是想出这个out.I'll记下来。 我创建了一个循环,并使用MPMusicPlayerController将音量恢复为每秒十分满。代码: 循环功能: - (无效)OverideVolumeLevelLoop:(的NSTimer *)定时器 { [[MPMusicPlayerController applicationMusicPlayer] setVolume:1.0F]; } 然后,只需的NSTimer循环此功能: 的NSTimer * overideVolumeLoop = [的NSTimer scheduledTimerWithTimeInterval:0.1F目标:自选择器:@selector(OverideVolumeLevelLoop :) USERINFO:无重复:YES]; &完成后不要忘记使循环无效: [overideVolumeLoop invalidate]; –

+0

恭喜你,如果你知道了Andres! :)请在下方放置自己的答案,并尽快将答案标记为已答复,谢谢。 – Madhu

+0

谢谢Madhumal :)我会张贴这个答案并将它标记为'8小时回答',因为我的声望不允许我更早发布我自己的答案:) –

回答

3

我只是想出了这一个。

我创建了一个循环,并使用MPMusicPlayerController将音量恢复为每秒十分满。

循环功能:

-(void) OverideVolumeLevelLoop:(NSTimer *)timer 
{ 
    [[MPMusicPlayerController applicationMusicPlayer] setVolume:1.0f]; 
} 

然后就的NSTimer循环这个功能:

NSTimer *overideVolumeLoop = [NSTimer scheduledTimerWithTimeInterval:0.1f target:self selector:@selector(OverideVolumeLevelLoop:) userInfo:nil repeats:YES]; 

(可以运行循环慢,但用户会注意到音量被提出备份)

&不要忘记在完成后无效循环:

[overideVolumeLoop invalidate]; 

这是基于此主题:

Set device volume on iPhone

0

您是否试过AVAudioPlayer的音量功能?即

//some method that gets called when you want to play a sound 
- (void)play sound { 

audioPlayer.volume = 1.0; 
[audioPlayer play]; 

} 
+0

谢谢德索,这其实只是修改相对于全球音量在iPhone上设置。我找到了一个解决方法,并将其作为评论发布,我将在系统允许我自我回答的8小时内将它发布为答案。 –

+0

太好了。锻炼你自己的解决方案总是最好的。祝你好运。 – dman

相关问题