編輯:關於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); } } }
一、拖放機制概述拖放操作是手指觸摸屏幕上的某一對象,然後拖動該對象,最後在屏幕的某個位置釋放該對象並執行某種操作,如刪除、卸載、啟動、復制數據等。允許以圖形化的手勢操作完
Builder模式是一種設計模式,最初被介紹於《設計模式:可復用面向對象軟件的基礎》,目前在Java及Android中用處更是十分廣泛,因此基本的了解與學習應當掌握。一.
Android系統默認的Toast十分簡潔,使用也非常的簡單。但是有時我們的程序使用默認的Toast時會和程序的整體風格不搭配,這個時候我們就需要自定義Toast,使其與
最近在項目開發中遇到一個關於手機輸入鍵盤的坑,特來記錄下。應用場景:項目中有一個界面是用viewpaper加三個fragment寫的,其中viewpaper被我屏蔽了左右