以下のコードで実装したらsetVolumeが効かない。
mPlayer.setVolume(0.0f,0.0f)をしても音楽が流れ続けた。
なんでだ.....
import android.content.Context;
import android.media.AudioManager;
import android.media.MediaPlayer;
import android.os.Handler;
public class BgmManager implements Runnable{
protected Context mContext;
protected MediaPlayer mPlayer;
AudioManager audio;
protected Handler fadeHandler;
protected float mCurrentVolume = 1.0f;
public BgmManager(Context context) {
mContext = context;
fadeHandler = new Handler();
}
public void setBgmResource(int resourceId){
mPlayer = MediaPlayer.create(mContext, resourceId);
}
public void startBgm(){
if(mPlayer == null) return;
mPlayer.setLooping(true);
mPlayer.setVolume(mCurrentVolume, mCurrentVolume);
mPlayer.start();
}
public void stopBgm(){
if (mPlayer != null) {
if (mPlayer.isPlaying()) {
mPlayer.stop();
}
mPlayer.release();
mPlayer = null;
}
}
public void fadeOutBgm(){
//mPlayer.setVolume(0.0f, 0.0f);
if(mPlayer.isPlaying()) fadeHandler.post(this);
}
@Override
public void run() {
mCurrentVolume -= 0.1f;
if( 0 < mCurrentVolume ){
fadeHandler.post(this);
}else{
mCurrentVolume = 0.0f;
mPlayer.pause();
}
mPlayer.setVolume(mCurrentVolume, mCurrentVolume);
}
}