`
woaidousha
  • 浏览: 24026 次
  • 性别: Icon_minigender_1
  • 来自: 郑州
社区版块
存档分类
最新评论

AudioManager中的OnAudioFocusChangeListener的使用

阅读更多

        今天修改MP3中的一个小问题:在来短信的时候自动暂停音乐播放,当短信音播放完毕以后,或手动查看通知导致短信音结束后,音乐自动播放。

        查看android自带的播放器源码后发现使用的是OnAudioFocusChangeListener这个监听器来监听声音焦点的改变的。附上代码:

 

mAudioManager = (AudioManager) getSystemService(Context.AUDIO_SERVICE);
public void play() {
        mAudioManager.requestAudioFocus(mAudioFocusListener, AudioManager.STREAM_MUSIC,
                AudioManager.AUDIOFOCUS_GAIN);
......
}

 

 

        在此几行代码中,拿到AudioManager的实例,然后调            用requestAudioFocus方法,第一个参数为监听声音焦点改变的监听器,后两个不太明白,第二个好像是主要的监听音频类型,

这里设置为音乐。

        然后在service的onDestory方法中调用mAudioManager.abandonAudioFocus(mAudioFocusListener);貌似是注销监听器的意思。

private OnAudioFocusChangeListener mAudioFocusListener = new OnAudioFocusChangeListener() {
        public void onAudioFocusChange(int focusChange) {
            mMediaplayerHandler.obtainMessage(FOCUSCHANGE, focusChange, 0).sendToTarget();
        }
    };
        这个监听器就很好理解了就不多说了。 

 

分享到:
评论
发表评论

文章已被作者锁定,不允许评论。

相关推荐

    AudioManager中文翻译

    要使用 `AudioManager`,首先需要通过 `Context` 获取其实例。具体做法是调用 `Context.getSystemService(Context.AUDIO_SERVICE)` 方法。这将返回一个 `AudioManager` 对象实例,之后可以通过该实例来执行音频相关...

    Android程序设计-AudioManager介绍.pptx

    .setOnAudioFocusChangeListener(new AudioManager.OnAudioFocusChangeListener() { @Override public void onAudioFocusChange(int focusChange) { switch (focusChange) { case AudioManager.AUDIOFOCUS_GAIN...

    安卓音量控制DEMO

    AudioManager.OnAudioFocusChangeListener afChangeListener = new AudioManager.OnAudioFocusChangeListener() { @Override public void onAudioFocusChange(int focusChange) { // 处理音量变化 } }; ``` 在`...

    Webview播放网络视频并实现全屏显示,解决声音问题

    AudioManager.OnAudioFocusChangeListener afChangeListener = new AudioManager.OnAudioFocusChangeListener() { @Override public void onAudioFocusChange(int focusChange) { switch (focusChange) { case ...

    android听筒和扬声器切换,兼容5.0以上

    总的来说,实现Android应用中的听筒和扬声器切换涉及到对`AudioManager`的深入理解和巧妙使用。通过合理配置音频流类型、音频模式,以及监听设备状态变化,可以构建一个稳定且兼容性强的解决方案。在开发过程中,...

    MediaApp.rar

    在“MediaApp”这个项目中,开发者可能会结合MediaPlayer类一起使用audiomanager。MediaPlayer是Android提供的核心媒体播放组件,它可以处理各种音频和视频格式的播放。通过audiomanager,MediaPlayer可以更好地集成...

    Android studio搭建的音乐播放器

    AudioManager.OnAudioFocusChangeListener focusChangeListener = new AudioManager.OnAudioFocusChangeListener() { // 处理音频焦点变化 ... }; ``` 六、资源管理 1. 将音乐文件添加到项目的 `res/raw` 目录下...

    仿ios音量调节的效果.zip

    同时,需要实时更新音量显示,可以使用`AudioManager`的`getStreamVolume`方法获取当前音量,并更新视图的进度。 4. **动画效果** iOS的音量调节通常伴随着平滑的动画效果。在Android中,可以通过`ObjectAnimator`...

    android 音量控制 定时 震动 静音 铃声 情景模式 设置

    开发人员可以创建自定义情景模式并保存用户的设置,或者利用系统的现有情景模式接口,如`AudioManager.OnAudioFocusChangeListener`监听音量变化,适时调整设备状态。 综上所述,Android平台为开发者提供了丰富的...

    android 音量控制

    通过调用`AudioManager`的方法,我们可以实现程序中动态调整音量: - `adjustVolume(int direction, int flags)`:根据参数`direction`(如`AudioManager.ADJUST_RAISE`或`AudioManager.ADJUST_LOWER`)来增减音量...

    调用Android自带的播放器播放Audio

    你可以通过实现`AudioManager.OnAudioFocusChangeListener`来请求和处理音频焦点: ```java AudioManager audioManager = (AudioManager) getSystemService(Context.AUDIO_SERVICE); int result = audioManager....

    Android应用源码仿ios音量调节的效果.zip

    同时,为了响应系统的音量改变事件,可以注册`AudioManager.OnAudioFocusChangeListener`,以便在音量改变时更新自定义滑块的状态。 4. 动画效果:为了模拟iOS音量滑块的平滑动画,开发者可能会使用`ObjectAnimator...

    应用源码之audio.zip

    12. **监听器和回调**:了解如何注册和使用AudioManager的监听器,如AudioManager.OnAudioFocusChangeListener,可以捕捉音频焦点变化并做出相应。 通过研究"应用源码之audio.zip"中的代码,开发者不仅能学习到上述...

    一行代码快速实现视频播放,Android视频播放,AndroidMP3播放,安卓视频播放一行代码搞定,真正实现Android的全屏功能

    .setOnAudioFocusChangeListener(new AudioManager.OnAudioFocusChangeListener() { @Override public void onAudioFocusChange(int focusChange) { // 处理音频焦点变化 } }) .build(); AudioManager ...

    安卓soundpool案例

    这可以通过实现AudioManager.OnAudioFocusChangeListener接口来完成。 此外,标签"androidsoundpool 音频播放"提示我们,这个案例可能包含了如何在不同场景下使用SoundPool进行音频播放的示例,比如游戏中的音效、...

    Android应用源码之MSD音乐播放器.zip

    MSD音乐播放器可能会实现AudioManager.OnAudioFocusChangeListener接口,监听音频焦点的变化,根据变化情况决定是否暂停或恢复播放。 3. **Service**:为了在后台持续播放音乐,应用通常会使用Service组件。MSD音乐...

    android音乐播放器带详细注释

    使用`AudioManager`的`requestAudioFocus()`方法来请求焦点,并监听`AudioManager.OnAudioFocusChangeListener`来响应焦点变化。 3. **UI设计与交互** 音乐播放器的界面通常包含播放/暂停按钮、前进/后退按钮、...

    Android 简易音乐播放器源码.zip

    开发者需要实现`AudioManager.OnAudioFocusChangeListener`来处理音频焦点的请求和丢失,以确保播放的平滑过渡。 8. **权限管理**:访问外部存储的音乐文件需要申请`READ_EXTERNAL_STORAGE`权限。自Android 6.0...

    详解Android 视频播放时停止后台运行的方法

    AudioManager.OnAudioFocusChangeListener focusChangeListener = new AudioManager.OnAudioFocusChangeListener() { @Override public void onAudioFocusChange(int focusChange) { switch (focusChange) { ...

    android多媒体和相机详解(二)

    int result = audioManager.requestAudioFocus(new AudioManager.OnAudioFocusChangeListener() { @Override public void onAudioFocusChange(int focusChange) { // 在此处处理音频焦点变化 } }, AudioManager....

Global site tag (gtag.js) - Google Analytics