2014-04-11 3 views
1

라디오 플레이를 설정했지만 큰 문제는 휴대 전화 화면이 검게 변할 때 라디오가 스트리밍을 멈추는 것입니다. 아무도 왜이 모든 것을 알고 있습니까?라디오 스트리밍

public class MainActivity extends Activity implements OnClickListener { 

private Button buttonPlay; 

private Button buttonStopPlay; 

private MediaPlayer player; 

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

    initializeUIElements(); 

    initializeMediaPlayer(); 
} 

private void initializeUIElements() { 



    buttonPlay = (Button) findViewById(R.id.buttonPlay); 
    buttonPlay.setOnClickListener(this); 

    buttonStopPlay = (Button) findViewById(R.id.buttonStopPlay); 
    buttonStopPlay.setEnabled(false); 
    buttonStopPlay.setOnClickListener(this); 

} 

public void onClick(View v) { 
    if (v == buttonPlay) { 
     startPlaying(); 
    } else if (v == buttonStopPlay) { 
     stopPlaying(); 
    } 
} 

private void startPlaying() { 
    buttonStopPlay.setEnabled(true); 
    buttonPlay.setEnabled(false); 


    player.prepareAsync(); 

    player.setOnPreparedListener(new OnPreparedListener() { 

     public void onPrepared(MediaPlayer mp) { 
      player.start(); 
     } 
    }); 

} 

private void stopPlaying() { 
    if (player.isPlaying()) { 
     player.stop(); 
     player.release(); 
     initializeMediaPlayer(); 
    } 

    buttonPlay.setEnabled(true); 
    buttonStopPlay.setEnabled(false); 

} 

private void initializeMediaPlayer() { 
    player = new MediaPlayer(); 
    try {   
     player.setDataSource("http://69.46.75.99/"); 
    } catch (IllegalArgumentException e) { 
     e.printStackTrace(); 
    } catch (IllegalStateException e) { 
     e.printStackTrace(); 
    } catch (IOException e) { 
     e.printStackTrace(); 
    } 

    player.setOnBufferingUpdateListener(new OnBufferingUpdateListener() { 

     public void onBufferingUpdate(MediaPlayer mp, int percent) { 

      Log.i("Buffering", "" + percent); 
     } 
    }); 
} 

@Override 
protected void onPause() { 
    super.onPause(); 
    if (player.isPlaying()) { 
     player.stop(); 
    } 
} 

}

답변

1

당신은 Service을 사용하는 것이 좋습니다 그렇지 않으면이 부분 가동 잠금을 획득해야합니다 :

여기에 코드입니다. Service을 사용하는 것은 까다 롭지 만 더 나은 옵션입니다.

Using a Service with MediaPlayer

+0

나를 위해 설정할 수 있습니까? 나는 영어를 아주 잘 이해하지 못하고 튜토리얼에서 이해할 수없는 많은 단어들이 있습니다. – DenisHD

관련 문제