2011-09-12 25 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

相關問題