停止播放音频以播放其他音频

时间:2017-05-16 17:02:38

标签: android audio

Here is a code sample

在我试图完成的事情中,我还尝试过if语句,我测试过,如果mp.isplaying()并且执行了mp.stop但没有运气。这都属于项目的主要类别。我在oncreate方法中没有任何内容

public class MainActivity extends AppCompatActivity {

MediaPlayer mp;

public void buttonTapped(View view){

    int id = view.getId();
    String ourId = "";
    ourId = view.getResources().getResourceEntryName(id);

    int resourceId = getResources().getIdentifier(ourId, "raw", getPackageName());

    mp = MediaPlayer.create(this, resourceId);
    mp.start();
    mp.setOnCompletionListener(new MediaPlayer.OnCompletionListener() {
        @Override
        public void onCompletion(MediaPlayer mp) {
            mp.release();
        }
    });
  //  Log.i("Stuff", viewId);
}
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
}

}

3 个答案:

答案 0 :(得分:1)

* * 中的代码应该可以解决问题。

public void buttonTapped(View view){

    int id = view.getId();
    String ourId = "";
    ourId = view.getResources().getResourceEntryName(id);

    int resourceId = getResources().getIdentifier(ourId, "raw", getPackageName());



 ***if(mp!=null){
         mp.release();
         mp=null;
         }***

    mp = MediaPlayer.create(this, resourceId);
    mp.start();
    mp.setOnCompletionListener(new MediaPlayer.OnCompletionListener() {
        @Override
        public void onCompletion(MediaPlayer mp) {
            mp.release();
        }
    });
  //  Log.i("Stuff", viewId);
}

答案 1 :(得分:0)

在setOnCompletionListener中你释放了mp,同时添加了mp = null。

答案 2 :(得分:0)

尝试以下代码: -

  

尝试
  {
                              MediaPlayer mp = new MediaPlayer();                               mp.setDataSource(birdsUrlList.get(位置).getUrl_audio());
                              mp.prepare();
                              mp.setOnPreparedListener(new MediaPlayer.OnPreparedListener(){
                                  @覆盖
                                  public void onPrepared(MediaPlayer mp){
                                      mp.start();
                                  }
                              });
                              mp.setOnCompletionListener(new MediaPlayer.OnCompletionListener(){
                                  @覆盖
                                  public void onCompletion(MediaPlayer mp){                                         mp.stop()
                                      mp.release();
                                  }
                              });
                              // startActivity(new Intent(Intent.ACTION_VIEW,   Uri.parse(birdsUrlList.get(位置).getUrl_video())));                           } catch(例外e){                               e.printStackTrace();                           }                       }