MediaPlayer のメソッドに対して null ポインター例外が発生し続けます。play 関数のコードと play 関数の初期化を別のメソッドに移動し、onClick リスナー内からそのメソッドを呼び出すことで、play 関数を機能させることができました。
ただし、アプリの一時停止機能のヌル ポインター例外が引き続き発生します。メディア プレーヤーの一時停止メソッドを使用しています。一時停止を機能させるにはどうすればよいですか? 問題は、コードの構造とその構成のどこかにあると思います。
メディア プレーヤーの初期化をコード内の別の場所に移動してみました。そして、何も機能していないようです。何か案は?
// onclick listener for the playing the selected song
playB.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
playSong();
}
});
// onclick listener for pausing the song that is playing
pauseB.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
pauseSong();
}
});
// method to pause song
public void pauseSong(){
player.pause();
length = player.getCurrentPosition();
}
// method to play song and initialize the MediaPlayer class with one file
// from the drawable folder, need to initialize with something or it will be null
// for that i decided to use an mp3 in R.raw folder
public void playSong(){
// Play song
MediaPlayer player = MediaPlayer.create(this, R.raw.g2);
player.reset();
try {
player.setDataSource(selectedAudioPath);
player.prepare();
} catch (IllegalArgumentException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IllegalStateException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
player.seekTo(length);
player.start();
} // play method