Android 利用AudioManager控制后台音乐播放器暂停,播放

1.

通过触发媒体的按钮来操作播放器状态:KeyEvent.KEYCODE_MEDIA_PAUSE 

public static void sendMediaButton(Context context, int keyCode) {
    AudioManager audioManager= (AudioManager) context.getSystemService(Context.AUDIO_SERVICE);
    //先判断后台是否再播放音乐
    if (audioManager.isMusicActive()){
        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);
    }
}
 2.通过AudioManager获取音频焦点AudioFocus,来竞争使用audio做停止播放或者降低声音的处理 
AudioManager am = (AudioManager) mAppContext.getSystemService(Context.AUDIO_SERVICE); 
am.requestAudioFocus(null, AudioManager.STREAM_MUSIC, AudioManager.AUDIOFOCUS_GAIN_TRANSIENT); 
AudioManager.AUDIOFOCUS_GAIN:永久获取媒体焦点(播放音乐) 估计音乐播放器使用了此方法,在播放视频时调用,不起作用 
AudioManager.AUDIOFOCUS_GAIN_TRANSIENT 暂时获取焦点 适用于短暂的音频 
AudioManager.AUDIOFOCUS_GAIN_TRANSIENT_MAY_DUCK Duck我们应用跟其他应用共用焦点 我们播放的时候其他音频会降低音量

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
抱歉,根据提供的引用内容,我无法回答关于Android Studio开发复杂音乐播放器的问题。引用内容只提到了一个小小的音乐播放器,并没有提供关于复杂音乐播放器开发的信息。如果你对Android Studio开发复杂音乐播放器感兴趣,我可以为你提供一些基本的指导和建议。 首先,你需要了解Android Studio是一个集成开发环境(IDE),用于开发Android应用程序。要开发复杂的音乐播放器,你需要掌握以下几个方面的知识和技能: 1. Java编程语言:Android应用程序主要使用Java编程语言进行开发。你需要熟悉Java的基本语法、面向对象编程和常用的数据结构。 2. Android框架:Android框架提供了一系列的API和工具,用于开发Android应用程序。你需要熟悉Android框架的各个组件,如活动(Activity)、服务(Service)、广播接收器(Broadcast Receiver)和内容提供器(Content Provider)等。 3. 音频处理:音乐播放器需要能够处理音频文件,包括播放暂停、停止、调整音量等功能。你需要了解Android提供的音频处理API,如MediaPlayer和AudioManager等。 4. 用户界面设计:一个复杂的音乐播放器需要一个美观、易用的用户界面。你可以使用Android提供的布局和控件来设计和构建用户界面,如LinearLayout、RelativeLayout、Button、TextView等。 5. 数据存储:音乐播放器需要能够管理和播放本地音乐文件。你可以使用Android提供的SQLite数据库来存储音乐文件的信息,如歌曲名称、艺术家、专辑等。 6. 多线程编程:为了避免音乐播放器播放音乐时出现卡顿,你需要使用多线程编程来实现音乐的异步加载和播放。 以上是开发复杂音乐播放器所需的一些基本知识和技能。如果你对其中的某个方面感兴趣,我可以为你提供更详细的指导和建议。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值