Audioを再生するときにコントロールを持つことができるようにMediaControllerを設定しようとしていますが、宣言しようとすると「これ」がエラーとして表示されます。私は間違って何をしていますか?MediaControllerを設定する
@TargetApi(Build.VERSION_CODES.LOLLIPOP) パブリッククラスMainActivityはAppCompatActivityがMediaRecorder.OnInfoListener {
private boolean cont;
private MediaRecorder mediaRecorder;
private MediaPlayer mediaPlayer;
private String OUTPUT_FILE;
private MediaController mediaController;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
OUTPUT_FILE = Environment.getExternalStorageDirectory()+"/androidaudio1.3gpp";
cont=true;
}
public void buttonClicked(View view){
switch (view.getId()){
case R.id.startRec:
beginRecord();
break;
case R.id.stopRec:
stopRecord();
break;
case R.id.startPlay:
try {
begginPlaying();
} catch (IOException e) {
e.printStackTrace();
}
break;
case R.id.stopPlay:
stopPlaying();
break;
}
}
@TargetApi(Build.VERSION_CODES.LOLLIPOP)
private void begginPlaying() throws IOException {
if (mediaPlayer != null)
mediaPlayer.release();
mediaPlayer = new MediaPlayer();
mediaPlayer.setDataSource(OUTPUT_FILE);
mediaController = new MediaController(this);
mediaController.setMediaPlayer(this);
mediaController.show();
mediaPlayer.prepare();
mediaPlayer.start();
}
private void stopPlaying(){
if (mediaPlayer!= null){
mediaPlayer.stop();
mediaPlayer.reset();
mediaPlayer.release();
mediaPlayer=null;
}
@Override
public void start() {
mediaPlayer.start();
}
@Override
public void pause() {
mediaPlayer.pause();
}
@Override
public int getDuration() {
return mediaPlayer.getDuration();
}
@Override
public int getCurrentPosition() {
return mediaPlayer.getCurrentPosition();
}
@Override
public void seekTo(int pos) {
mediaPlayer.seekTo(pos);
}
@Override
public boolean isPlaying() {
return mediaPlayer.isPlaying();
}
@Override
public int getBufferPercentage() {
return 0;
}
@Override
public boolean canPause() {
return true;
}
@Override
public boolean canSeekBackward() {
return true;
}
@Override
public boolean canSeekForward() {
return true;
}
@Override
public int getAudioSessionId() {
return 0;
}
}
テイクのMediaController 使用を設定し、その後
this
を渡すことができ、このをお試しください私はコードの先頭を含むように投稿を編集しました –
@GJ:更新された答えを確認してください。 –
はい、ありがとうございました。コントローラーの設定についてもお手伝いできますか?私がsetMediaPlayerを試して、プレーヤーに渡すとエラーが出る –