0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

setVolumeが効かない

Last updated at Posted at 2013-01-13

以下のコードで実装したら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); 
	}
}
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?