簡體   English   中英

停止在Android中播放聲音

[英]Stop played sound in android

我使用此代碼通過單擊按鈕來播放聲音。

    b.setOnClickListener(new OnClickListener() {

                @Override
                public void onClick(View v) {

                    if(mp.isPlaying())
                    {  
                        mp.stop();
                    } 

                    try {
                        mp.reset();
                        AssetFileDescriptor afd;
                        afd = getAssets().openFd("sound/07.mp3");
                        mp.setDataSource(afd.getFileDescriptor(),afd.getStartOffset(),afd.getLength());
                        mp.prepare();
                        mp.start();
                    } catch (IllegalStateException e) {
                        e.printStackTrace();
                    } catch (IOException e) {
                        e.printStackTrace();
                    }



                }
            });

它工作正常,但我無法停止聲音!

我用mp.stop(); 。但單擊按鈕再次播放聲音!

當您的onClickListener運行時,if語句將在其他代碼運行之后進行檢查。 if您的代碼應如下所示,請嘗試在else語句之后放置else語句:

  b.setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View v) {

                if(mp.isPlaying())
                {  
                    mp.stop();
                }else{
                try {
                    mp.reset();
                    AssetFileDescriptor afd;
                    afd = getAssets().openFd("sound/07.mp3");
                    mp.setDataSource(afd.getFileDescriptor(),afd.getStartOffset(),afd.getLength());
                    mp.prepare();
                    mp.start();
                } catch (IllegalStateException e) {
                    e.printStackTrace();
                } catch (IOException e) {
                    e.printStackTrace();
                }

}

            }
        });

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM