網上有很多暫停背景音樂的例子,最多的就是根據暫停的指令去發廣播來暫停音樂。其實這種方式很不靠譜,為什么?因為其他的播放器不一定注冊監聽了那個廣播,所以大多數情況是不起作用的。
下面有一種比較靠譜的方式,是通過觸發媒體的按鈕來操作播放器狀態。
網友實現的另一種方法
簡約寫下流程
{ 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); } }}
新聞熱點
疑難解答
圖片精選