android中暂停背景音乐

所属分类: 软件编程 / Android 阅读数: 353
收藏 0 赞 0 分享

网上有很多暂停背景音乐的例子,最多的就是根据暂停的指令去发广播来暂停音乐。其实这种方式很不靠谱,为什么?因为其他的播放器不一定注册监听了那个广播,所以大多数情况是不起作用的。

下面有一种比较靠谱的方式,是通过触发媒体的按钮来操作播放器状态。

复制代码 代码如下:

sendMediaButton(context,<span style="font-size:9pt;line-height:1.5;color:#2B91AF;">KeyEvent</span><span style="font-size:9pt;line-height:1.5;">.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网络编程之获取网络上的Json数据实例

这篇文章主要介绍了Android网络编程之获取网络上的Json数据实例,本文用完整的代码实例讲解了在Android中读取网络中Json数据的方法,需要的朋友可以参考下
收藏 0 赞 0 分享

Android中的windowSoftInputMode属性详解

这篇文章主要介绍了Android中的windowSoftInputMode属性详解,本文对windowSoftInputMode的9个属性做了详细总结,需要的朋友可以参考下
收藏 0 赞 0 分享

Android网络编程之UDP通信模型实例

这篇文章主要介绍了Android网络编程之UDP通信模型实例,本文给出了服务端代码和客户端代码,需要的朋友可以参考下
收藏 0 赞 0 分享

Android中使用ListView实现漂亮的表格效果

这篇文章主要介绍了Android中使用ListView实现漂亮的表格效果,本文用详细的代码实例创建了一个股票行情表格,需要的朋友可以参考下
收藏 0 赞 0 分享

Android中刷新界面的二种方法

这篇文章主要介绍了Android中刷新界面的二种方法,本文使用Handler、postInvalidate两种方法实现界面刷新,需要的朋友可以参考下
收藏 0 赞 0 分享

Android SDK三种更新失败及其解决方法

这篇文章主要介绍了Android SDK三种更新失败及其解决方法,需要的朋友可以参考下
收藏 0 赞 0 分享

Android学习笔记——Menu介绍(一)

Android3.0(API level 11)开始,Android设备不再需要专门的菜单键。随着这种变化,Android app应该取消对传统6项菜单的依赖。取而代之的是提供anction bar来提供基本的用户功能
收藏 0 赞 0 分享

Android学习笔记——Menu介绍(二)

这次将继续上一篇文章没有讲完的Menu的学习,上下文菜单(Context menu)和弹出菜单(Popup menu)
收藏 0 赞 0 分享

Android学习笔记——Menu介绍(三)

今天继续昨天没有讲完的Menu的学习,主要是Popup Menu的学习,需要的朋友可以参考下
收藏 0 赞 0 分享

Android显示网络图片实例

这篇文章主要介绍了Android显示网络图片的方法,以实例形式展示了Android程序显示网络图片的方法,非常具有实用价值,需要的朋友可以参考下
收藏 0 赞 0 分享
查看更多