2014-01-16 58 views
2

我想減少iPhone的鈴聲音量以編程方式使用AVSystemController,我才知道這是可能的AVSystemController,但我知道,這是一個私有方法。如果我使用它,將蘋果拒絕的應用程序或請建議我的另一種方式在iPhone應用程序

+0

你找到了一個解決方案?我面臨着類似的問題。 – ScarletWitch

回答

0

使用任何類型的私有方法的有蘋果拒絕您的應用程序的變化。由於公開iOS SDk不允許您更改鈴聲音量,因此您的應用無法使用此功能。

-2

試試這個代碼

float value = 0.5;//this should be between 0.0 to 1.0 

[[MPMusicPlayerController applicationMusicPlayer] setVolume: value]; 
+0

設置音樂/音頻音量不是鈴聲。 – rckoenes

-1

您可以使用AVAudioPlayer和MPVolumeView用於管理valume也請參考以下鏈接:How to implement a volume key shutter for iPhone?

+0

問題是關於手機鈴聲音量而不是音頻播放音量。 – rckoenes

+0

你檢查了我提供的鏈接嗎? –

+0

是的,我做過了,這是一個關於黑客檢測加音量按鈕的按下。但是這個問題是關於編程改變鈴聲音量,而不是音頻播放音量。 – rckoenes

0

可能是,蘋果會拒絕它。這裏,將告訴你如何做到這一點的鏈接[link2

更新:

[[MPMusicPlayerController applicationMusicPlayer] setVolume:setvalue]; 

檢查這些linklink也。 您無法以編程方式更改鈴聲音量。

+0

備用鏈接說它是爲應用音樂播放器,但我想減少鈴聲音量 – KishoreThindaak

+0

@ user2634244看看這個傢伙用來增加/減少音量的問題。他的問題是你的答案。 –

+0

@ user2634244據我所知,在做完r&d之後我們知道你不能改變鈴聲音量programmaticaly,但是你可以通過程序設置它。請檢查我更新的答案。 –

3
- (void) setSystemVolumeLevelTo:(float)newVolumeLevel 
{ 
    Class avSystemControllerClass = NSClassFromString(@"AVSystemController"); 
    id avSystemControllerInstance = [avSystemControllerClass performSelector:@selector(sharedAVSystemController)]; 

    NSString *soundCategory = @"Ringtone"; 

    NSInvocation *volumeInvocation = [NSInvocation invocationWithMethodSignature: 
            [avSystemControllerClass instanceMethodSignatureForSelector: 
            @selector(setVolumeTo:forCategory:)]]; 
    [volumeInvocation setTarget:avSystemControllerInstance]; 
    [volumeInvocation setSelector:@selector(setVolumeTo:forCategory:)]; 
    [volumeInvocation setArgument:&newVolumeLevel atIndex:2]; 
    [volumeInvocation setArgument:&soundCategory atIndex:3]; 
    [volumeInvocation invoke]; 
} 
+0

非常感謝! –