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