2012-05-22 127 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開始播放並開始播放。那就是問題所在 –