2016-05-25 16 views
0

Wie wird das Volume in iOS xamarin.forms abgerufen und eingestellt?Abrufen und Festlegen der Lautstärke für iOS

Ich habe einen abhängigen Dienst in Android geschrieben, der die Lautstärke des Musikstroms auf Android setzt und bekommt.

Ich möchte einen Schieberegler mit der aktuellen Lautstärke standardmäßig eingestellt haben und Benutzer zulassen, um die Lautstärke durch Verschieben des Schiebereglers einzustellen. Außerdem möchte ich die maximal zulässige Lautstärke für die Einstellung der maximalen Grenze des Schiebereglers erhalten.

Hier ist, wie ich in Android getan haben, und arbeitet perfekt auf Andriod Gerät:

public int MaxVolume() 
{ 
    AudioManager audioMan = (AudioManager)global::Android.App.Application.Context.GetSystemService(Context.AudioService); 
    return audioMan.GetStreamMaxVolume(Android.Media.Stream.Music); 
} 

public void SetVolume(int volume) 
{ 
    AudioManager audioMan = (AudioManager)global::Android.App.Application.Context.GetSystemService(Context.AudioService); 
    audioMan.SetStreamVolume(Android.Media.Stream.Music, volume, 0); 
} 

public int GetCurrentVolume() 
{ 
    AudioManager audioMan = (AudioManager)global::Android.App.Application.Context.GetSystemService(Context.AudioService); 
    return audioMan.GetStreamVolume(Android.Media.Stream.Music); 
} 

Wie kann ich auf iOS gleiche erreichen? Ich habe versucht float volume = AVAudioSession.SharedInstance().OutputVolume;, aber gibt mir nicht Volumen.

Antwort

0

Lautstärke Geben Sie u müssen AVPlayer verwenden

AVAudioSession.SharedInstance().SetCategory(AVAudioSessionCategory.Playback , AVAudioSessionCategoryOptions.MixWithOthers); 

var player = new AVPlayer(audioFilePath); 
player.Volume = 0.2f; 
player.Play(); 

Wo Schallpegels von 0.0f geht

More about AVPlayer

bis 1f Wenn Sie oder niedrig steigen müssen, um es nur den Wert hinzuzufügen. Sie können auch bei MPVolumeView einen Blick Dies ist ein Slider, die programmatisch

+0

Wie erhalte ich maximale Lautstärke? – Arti

+0

Warum müssen Sie den Lautstärkepegel kennen? –

+0

Das liegt daran, dass ich einen Schieberegler habe, mit dem ich die Lautstärke regeln kann und die maximale Lautstärke für den Schieberegler einstellen muss. – Arti

0

ich es so gelöst (Lesen Sie die aktuelle Leistung nur) ändert Volumen:

AVAudioSession.SharedInstance().SetActive(true); 
return AVAudioSession.SharedInstance().OutputVolume; 

Der erste Befehl erforderlich ist, um aktualisiert werden Werte, die zweite gibt einen Float zwischen 0 und 1 zurück und zeigt das aktuelle Ausgabevolumen an.

Dank dieser Referenzen:

Ausgabevolumen: Get System Volume iOS

Aktualisierung der Wert: How to get System Volume iOS?

Verwandte Themen