第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

Android MediaPlayer停止播放

Android MediaPlayer停止播放

慕妹3242003 2019-12-15 12:12:08
我正在創(chuàng)建包含2個按鈕的Android應(yīng)用程序,單擊每個按鈕可播放mp3文件。問題是當(dāng)我播放button1它時sound1,當(dāng)我單擊button2它播放時sound2。我檢查每個按鈕是否在其他播放器上,然后停下來播放被點擊的播放器但是,如果我兩次單擊同一按鈕,則會使第一個音頻在后臺播放,然后再次播放另一個我試圖檢查isPlaying()并阻止它,但是它不起作用!我想要如果我單擊button1它播放sound1,如果再次單擊它,它將停止播放并從頭開始播放。我的代碼:package com.hamoosh.playaudio;import android.app.Activity;import android.media.MediaPlayer;import android.media.MediaPlayer.OnCompletionListener;import android.os.Bundle;import android.os.Handler;import android.view.View;import android.widget.Button;import android.widget.TextView;public class PlayaudioActivity extends Activity {/** Called when the activity is first created. */    @Override    public void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.main);        Button b= (Button) findViewById(R.id.button1);        Button b2= (Button) findViewById(R.id.button2);        final TextView t= (TextView) findViewById(R.id.textView1);        final MediaPlayer mp = MediaPlayer.create(PlayaudioActivity.this, R.raw.far);        final MediaPlayer mp1 = MediaPlayer.create(PlayaudioActivity.this, R.raw.beet);        b.setOnClickListener(new View.OnClickListener() {            @Override            public void onClick(View v) {                if (mp1.isPlaying()) {                    mp1.stop();                }                mp.start();            }        });        b2.setOnClickListener(new View.OnClickListener() {            @Override            public void onClick(View v) {                if (mp.isPlaying()) {                    mp.stop();                }                mp1.start();            }        });    }}希望如果有什么更好的代碼,可以使用多個按鈕數(shù)組或東西不檢查每個按鈕和球員的每一次
查看完整描述

3 回答

?
陪伴而非守候

TA貢獻1757條經(jīng)驗 獲得超8個贊

要停止Media Player而不會出現(xiàn)非法狀態(tài)異常的風(fēng)險,您必須


  try {

        mp.reset();

        mp.prepare();

        mp.stop();

        mp.release();

        mp=null;

       }

  catch (Exception e)

         {

           e.printStackTrace();

         }

而不只是


try {

       mp.stop();

       mp.release();

       mp=null;

    } 

catch (Exception e) 

    {

      e.printStackTrace();

    }



查看完整回答
反對 回復(fù) 2019-12-16
?
慕慕森

TA貢獻1856條經(jīng)驗 獲得超17個贊

根據(jù)MediaPlayer您可以在Android API指南中查看的生命周期,我認為您必須調(diào)用reset()而不是stop(),然后從頭開始再次準備媒體播放器(僅使用一個)播放聲音。還請考慮聲音可能已經(jīng)結(jié)束。因此,我還建議實施setOnCompletionListener()以確保如果您再次嘗試播放聲音,它不會失敗。




查看完整回答
反對 回復(fù) 2019-12-16
  • 3 回答
  • 0 關(guān)注
  • 544 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號