2016-05-17 15 views
0

Angenommen, ich habe ein MediaPlayer Klassenobjekt, das etwas Musik spielt. Jetzt möchte ich die Musik ändern, um entweder vom internen Lautsprecher des Geräts oder bereits eingestecktem Kopfhörer abzuspielen.Spielen Sie Sound entweder von externem oder internem Lautsprecher programmgesteuert

Lassen Sie uns sagen, nur durch Tippen auf eine Schaltfläche. Ist das möglich?

+1

Mögliches Duplikat [wie Lautsprecher Ein-/Ausschalten programmatisch in Android 4.0] (http://stackoverflow.com/questions/12036221/how-to -Turn-Lautsprecher-on-Off-programmatisch-in-Android-4-0) – Michael

+0

@Michael Vielen Dank. Ich habe jede Antwort verfolgt, die dem Szenario ähnlich ist. Ich habe deine Antwort erwartet. Danke nochmal. Ich kann dich jetzt stören. Entschuldigung im Voraus. Lassen Sie mich einen der Vorschläge von Edward überprüfen. :-) – Nabin

Antwort

0

Ich kann nichts sagen, weil ich nicht genug Ruf habe, also werde ich es posten.

einfach eine kleine schnelle Suche: Switching between earpiece and speaker

import android.media.MediaPlayer; 
import android.media.AudioManager; 

public class MediaPlayer { 
    private MediaPlayer mMediaPlayer; 
    private AudioManager mAudioManager; 
    private Button mButton; 
    private boolean isPlayingOnSpeaker = false; 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 

     ... 

     mMediaPlayer = MediaPlayer.create(this, R.raw.song); 
     mMediaPlayer.prepareAsync(); 
     mMediaPlayer.start(); 

     mButton = (Button) findViewById(R.id.button); 

     mButton.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 
      context = getActivity().getBaseContext(); 

      mAudioManager = (AudioManager)context.getSystemService(Context.AUDIO_SERVICE);   
      mAudioManager.setMode(AudioManager.STREAM_MUSIC); 

      if(isPlayingOnSpeaker) 
       {mAudioManager.setSpeakerphoneOn(false); isPlayingOnSpeaker=false;} 
      else {mAudioManager.setSpeakerphoneOn(true); isPlayingOnSpeaker=true;} 
     } 
     } 

     ... 
    } 
} 
+0

Wenn das funktioniert, werden Sie genug Ruf für die Zukunft bekommen. :-) – Nabin

+1

Ich hätte es als Kommentar gepostet, aber ich kann nicht dafür sorgen, dass ich nicht genug Reputation habe, ich schätze, ich werde versuchen, Code dafür zu schreiben. –