2012-05-22 95 views
0

我有这样的方法打一个按钮的音频文件:安卓:暂停流音频上的MediaPlayer

final MediaPlayer mediaplayer = MediaPlayer.create(
        this, 
        Uri.parse("android.resource://" + getPackageName() + "/" 
          + R.raw.inro)); 
      mediaplayer.setOnPreparedListener(new OnPreparedListener() { 
       @Override 
       public void onPrepared(MediaPlayer mp) { 
        if (mediaplayer.isPlaying()) { 
         mediaplayer.pause(); 
        } else { 
         mediaplayer.start(); 
        } 
       } 
      }); 

我想要做的是,当音频播放和用户点击该按钮再一次,音频会暂停,但是当他再次点击时,音频将恢复。

任何人都可以帮助我吗?谢谢

更新:

@Override 
    public void onClick(View v) { 

     switch (v.getId()) { 
     case R.id.btn_nav_back: 
      WWHApplication.getMapActivityIntance().getVideoLocationDB(); 
      WWHApplication.getMapActivityIntance().initLocations(); 
      if (category == 'f') { 
       if (WWHApplication.getFavoritesListActivityIntance() != null) 
        WWHApplication.getFavoritesListActivityIntance() 
          .loadListView(); 
      } 
      finish(); 
      break; 
     case R.id.btn_tool_audio: 
      final MediaPlayer mediaplayer = MediaPlayer.create(this, 
        Uri.parse("android.resource://" + getPackageName() + "/" 
          + R.raw.inro));  
        if (mediaplayer.isPlaying()) { 
         mediaplayer.pause(); 
        } else { 
         mediaplayer.start(); 
        } 

      break; 
+0

您现在面临的问题是什么? –

+0

暂停方法不起作用,当用户在播放音频时单击按钮时,它什么也不做 – hectichavana

回答

1

的问题是你想在里面PreparedListener暂停音频。 IT不会那样工作。做同样的一个按钮单击事件里面,

playButton.setOnClickListener(new OnClickListener() { 
       @Override 
     public void onClick(View v) { 
     if (mediaplayer.isPlaying()) { 
        mediaplayer.pause(); 
       } else { 
        mediaplayer.start(); 
       } 
       } 
    }); 

准备监听器被调用,只有当源准备好一起去演奏。它不能确保MediaPlayer播放和暂停。

+0

我刚更新了我的问题的方法,但它也不起作用。它实际上在我的朋友的onClick方法 – hectichavana

+1

中,您每次点击按钮时都会初始化MediaPLayer。删除这行'final MediaPlayer mediaplayer = MediaPlayer.create(this, Uri.parse(“android.resource://”+ getPackageName()+“/” + R.raw.inro)); '从你的交换机案件中,并分配给全球。或者每次当你点击你的按钮时,你的Mediaplayer开始播放并开始播放。那就是问题所在 –