Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> 關於Android編程 >> android中暫停背景音樂

android中暫停背景音樂

編輯:關於Android編程

網上有很多暫停背景音樂的例子,最多的就是根據暫停的指令去發廣播來暫停音樂。其實這種方式很不靠譜,為什麼?因為其他的播放器不一定注冊監聽了那個廣播,所以大多數情況是不起作用的。

下面有一種比較靠譜的方式,是通過觸發媒體的按鈕來操作播放器狀態。

復制代碼 代碼如下:
sendMediaButton(context,<span >KeyEvent</span><span >.KEYCODE_MEDIA_PAUSE);</span>

復制代碼 代碼如下:
private static void sendMediaButton(Context context, int keyCode) {
    KeyEvent keyEvent = new KeyEvent(KeyEvent.ACTION_DOWN, keyCode);
    Intent intent = new Intent(Intent.ACTION_MEDIA_BUTTON);
    intent.putExtra(Intent.EXTRA_KEY_EVENT, keyEvent);
    context.sendOrderedBroadcast(intent,null);
 
    keyEvent = new KeyEvent(KeyEvent.ACTION_UP, keyCode);
    intent = new Intent(Intent.ACTION_MEDIA_BUTTON);
    intent.putExtra(Intent.EXTRA_KEY_EVENT, keyEvent);
    context.sendOrderedBroadcast(intent,null);
}

網友實現的另一種方法

簡約寫下流程

{
 private Visualizer visualizer = null;//頻譜測試器
 private byte [] mRawVizData;//頻譜容器


 //實例化 Visualizer 對象
 visualizer = new Visualizer(0); 
 mRawVizData = new byte[128];

 //對象的初始化
 if(visualizer != null)
 {
  if (visualizer.getEnabled()) {
    visualizer.setEnabled(false);

   }

    visualizer.setCaptureSize(mRawVizData.length);//一定要在頻譜false狀態使用
    visualizer.setEnabled(true);//開啟頻譜獲取

 }

下面是開一個線程進行循環獲取頻譜信息,我只把獲取給貼出來

int status = Visualizer.ERROR;

 if(visualizer != null)
 {

  //音樂頻譜獲取
  status = visualizer.getFft(mRawVizData);//獲取波形圖

  if(status != Visualizer.SUCCESS)
  {
  Log.i("answer", "getWaveFail");
  }
  else
  {             
  int j = 0;

  for(int i = 0; i < 128; i++)
  {

    if(mRawVizData[i] == 0)
    {
      j++;
    }
  }

    Log.i("answer", "getWave j = " + j);
  }
 }
}

  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved