2012-02-09 5 views
2

최근 Android로 시작했습니다.재생 중에 사운드 출력을 변경할 수 있습니까?

나는 안드로이드로 사운드 출력을 이해하는 작은 예제를 시도하고있다. 이에

내가 나에게 MP3 파일을 재생하는 프로그램을 구축하고,이 연주로 사운드 출력을 변경할 수 있습니다 동안 :

  • 내부 스피커
  • 외부 스피커
  • 헤드셋
  • 이어폰

이것이 가능합니까?

나는 코드의 일부분을 다 만들었지 만 사운드 출력에서 ​​다른 것으로 건너 뛰는 방법을 모른다.

공용 클래스 TestAudioActivity는 활동 {

private MediaPlayer mediaPlayer; 
private ImageButton playButton; 
private ImageButton pauseButton; 
private ImageButton stopButton; 
AudioManager audioManager; 

/** Called when the activity is first created. */ 
@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.main); 

    initializeMediaPlayer(); 

    playButton = (ImageButton) findViewById(R.id.playButton); 
    pauseButton = (ImageButton) findViewById(R.id.pauseButton); 
    stopButton = (ImageButton) findViewById(R.id.stopButton); 

    playButton.setOnClickListener(new View.OnClickListener() { 
     public void onClick(View view) { 
      if (mediaPlayer != null) 
       mediaPlayer.start(); 
      else 
       initializeMediaPlayer(); 
     } 
    }); 

    pauseButton.setOnClickListener(new View.OnClickListener() { 
     public void onClick(View view) { 
      /** if (mediaPlayer != null) 
       mediaPlayer.pause(); */ 
      audioManager = (AudioManager) getSystemService(Context.AUDIO_SERVICE); 
      audioManager.setSpeakerphoneOn(false); 
      mediaPlayer.setAudioStreamType(AudioManager.STREAM_VOICE_CALL); 

     } 
    }); 

    stopButton.setOnClickListener(new View.OnClickListener() { 
     public void onClick(View view) { 
      if (mediaPlayer != null) { 
       mediaPlayer.stop(); 
       mediaPlayer.release(); 
       mediaPlayer = null; 
      } 
     } 
    }); 

} 

private void initializeMediaPlayer() { 
    try { 
     mediaPlayer = new MediaPlayer(); 
     mediaPlayer.setDataSource("http://server3.pianosociety.com/protected/bach-bwv772-stahlbrand.mp3"); 
     mediaPlayer.prepare(); 
    } catch (IllegalArgumentException e) { 
     // Mostramos mensaje en caso de error. 
     Toast.makeText(getApplicationContext(), "URL no encontrada", 2000); 
     e.printStackTrace(); 
    } catch (IllegalStateException e) { 
     e.printStackTrace(); 
    } catch (IOException e) { 
     e.printStackTrace(); 
    } 
} 

을}

사람이 도와 드릴까요 확장?

감사합니다. 실행시

답변

0

은 아직 미디어 활동을 해본 적이있다,하지만 당신은

audioManager.setMode(AudioManager.MODE_IN_CALL); 
audioManager.setSpeakerphoneOn(true); 
+0

안녕 페드로을 사용할 수 있습니다 예를 들어 재생하는 동안 예는 사운드 출력을 변경할 수 있습니다, 당신이 보낸 있지만 작동하지 않는 코드를 추가 응용 프로그램 코드를 종료하고 실행을 중지하십시오. – user1169292