ASSETS フォルダーにトラックがあるメディア プレーヤーがあり、各曲の開始/停止ボタンを作成したいと考えています。再生できますが、ボタンをもう一度クリックしても音楽は停止せず、最初の音楽を停止せずに別の音楽を開始します:s.
ここに私が今使っているコードがあります:
public void onClick(View v) {
try {
AssetFileDescriptor afd = getAssets().openFd("4.mp3");
player = new MediaPlayer();
player.setDataSource(afd.getFileDescriptor(),afd.getStartOffset(),afd.getLength());
player.prepare();
if(player.isPlaying()){
player.stop();
} else {
player.start();
}
}
catch (IllegalArgumentException e) { }
catch (IllegalStateException e) { }
catch (IOException e) { }
}
編集1:
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
player = new MediaPlayer();
TextView sound4 = (TextView) findViewById(R.id.cancionCuatro);
sound4.setOnClickListener(soundFour);
try {
AssetFileDescriptor afd = getAssets().openFd("4.mp3");
player.setDataSource(afd.getFileDescriptor(),afd.getStartOffset(),afd.getLength());
player.prepare();
}
catch (IllegalArgumentException e) { }
catch (IllegalStateException e) { }
catch (IOException e) { }
}
OnClickListener soundFour = new OnClickListener() {
public void onClick(View v) {
if(player.isPlaying()){
player.stop();
} else {
player.start();
}
}
};
LogCat: 状態 0 エラーで呼び出された開始 (-38 , 0)