调用stop()时,MediaPlayer音频不会立即停止

时间:2013-11-15 15:41:10

标签: android audio android-mediaplayer

一个按钮有onClickMethod openTheLock(),它使ImageView可见并启动音频。在点击ImageView时,它会消失并且音频会停止。音频在onCreate()中初始化。问题是当轻触ImageView时音频不会立即停止。可能是什么原因?

MediaPlayer jokerAudio;

@Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_earth_room);
        jokerAudio= MediaPlayer.create(EarthRoomActivity.this, R.raw.joker_laugh);
    }
public void openTheLock(View v){
    if(selectedItem == R.id.key_er_item || keyUsed == true){
    jokerAudio.start();
    ImageView joker = (ImageView)parentLayout.findViewById(R.id.joker);
    joker.setVisibility(View.VISIBLE);
    joker.setOnClickListener(new OnClickListener(){
        @Override
        public void onClick(View view) {
            jokerAudio.stop();
            view.setVisibility(View.INVISIBLE);         
        }
    });
    }

1 个答案:

答案 0 :(得分:2)

如果您没有再次使用MediaPlayer,则可以尝试发布MediaPlayer

joker.setOnClickListener(new OnClickListener(){
        @Override
        public void onClick(View view) {
            jokerAudio.stop();
            jokerAudio.reset();
            jokerAudio.release();
            view.setVisibility(View.INVISIBLE);         
        }
    });

但是,如果您稍后在代码中再次使用MediaPlayer,请不要忘记重新初始化它。