文档章节

Android文档学习09_多媒体1

larryee
 larryee
发布于 2015/01/14 21:35
字数 613
阅读 7
收藏 0


播放、停止、暂停、快进,快退和媒体录放控制

Android为播放音乐、警报、通知、电话铃声、系统声音、通话音量、双音多频音维护了单独的音频流。首先允许用户控制每个单独流的音量

大部分时候使用STREAM_MUSIC流来播放音频

默认情况下,按音量控制键会改变实际的音频流的音量。如果您的应用当前没有播放任何东西、按音量键会调整电话音量

Android 提供了便利的setVolumeControlStream()方法让音量按键直接处理你指定的音频流。

在应用生命周期中应该尽早调用--因为您只需要在activity生命周期中调用一次,最典型的是onCreate()方法中调用(在Activity或控制媒体的Fragment).这保证了不管应用是否可见,音量控制功能仍然像用户期待的。

setVolumeControlStream(AudioManager.STREAM_MUSIC);


在许多手机,有线和无线耳机上都有媒体播放按键,如播放、暂停、停止、快进和快退.当用户操作这些键时,系统会广播一个含有ACTION_MEDIA_BUTTON动作的intent


<receiver android:name=".RemoteControlReceiver">
    <intent-filter>
        <action android:name="android.intent.action.MEDIA_BUTTON" />
    </intent-filter>
</receiver>


在receiver实现里面,需要获的触发广播的按键。Intent在EXTRA_KEY_EVENT里面包含了按键,KeyEvent类包含了一个KEYCODE_MEDIA_*静态常量列表,每项代表了各种媒体按键,如KEYCODE_MEDIA_PLAY_PAUSE(暂停)和KEYCODE_MEDIA_NEXT(下一个)


public class RemoteControlReceiver extends BroadcastReceiver {
    @Override
    public void onReceive(Context context, Intent intent) {
        if (Intent.ACTION_MEDIA_BUTTON.equals(intent.getAction())) {
            KeyEvent event = (KeyEvent)intent.getParcelableExtra(Intent.EXTRA_KEY_EVENT);
            if (KeyEvent.KEYCODE_MEDIA_PLAY == event.getKeyCode()) {
                // Handle key press.
            }
        }
    }
}



接下来的代码能够在应用注册或者取消注册接收媒体按键事件时候使用。如果注册了,你的广播接收器是一个高级的接收器能够接收到所有的媒体按键广播


AudioManager am = mContext.getSystemService(Context.AUDIO_SERVICE);
...
 
// Start listening for button presses
am.registerMediaButtonEventReceiver(RemoteControlReceiver);
...
 
// Stop listening for button presses
am.unregisterMediaButtonEventReceiver(RemoteControlReceiver);


应用应该取消注册大多数的接收器,当他们变得不活跃或者不可见(像是在onStop()回调期间).但是,媒体按键应用不是那么简单-实际上,对应媒体按键处理是很重要的,如果你的应用不可见,视图最好不能进行控制。

一个更好地方法是当应用程序得到和失去音频焦点的时候,注册和取消注册媒体按钮事件接收器。



本文转载自:http://blog.csdn.net/u012992171/article/details/17094535

上一篇: removeRule
larryee
粉丝 0
博文 51
码字总数 393
作品 0
浦东
私信 提问
android系统底层到应用层全方位剖析

共12个pdf文档打包分享,大小 4.8M 01_Android系统概述 02_Android系统的开发综述 03_Android的Linux内核与驱动程序 04_Android的底层库和程序 05_Android的JAVA虚拟机和JAVA环境 06_Android...

无鸯
2011/09/05
11.2K
23
我把简历贴出来,各位大神看看哪里不好的地方,很想开始工作

姓 名 性 别 男 民 族 汉 族 籍 贯 学 历 大专 出生日期 1990 专 业 计算机技术及应用 就读院校 广州铁路职业技术学院 联系电话 13794340872 邮箱 chinamingke@163.com 主修课程: Office、j...

ckc
2013/04/09
6.1K
73
Android特色开发之语音识别

本文节选于机械工业出版社推出的《Android应用开发揭秘》一书,作者为杨丰盛。本书内容全面,详细讲解了Android框架、Android组件、用户界面开发、游戏开发、数据存储、多媒体开发和网络开发...

yarin
2018/06/26
0
0
【猎头招聘】Android技术经理(年薪20-30万)

大型网游公司诚聘 Android技术经理 年薪20-30万 岗位职责: 1、 独立(或带领项目团队)完成基于android手机平台项目的需求的收集分析、设计、框架搭建、开发与实施部署; 2、 能按照项目计划...

madan
2011/11/21
2.1K
16
《Android/OPhone 开发完全讲义》样章和目录下载

《Android/OPhone 开发完全讲义》一书预计在6-15左右出版,现提供3个样章(第1、8和14章)试读,欢迎提出宝贵意见。 内 容简介 本书近500页,共25章,分为5篇,超过200个完整的例子、超过2万...

小编辑
2010/06/02
1K
1

没有更多内容

加载失败,请刷新页面

加载更多

64.监控平台介绍 安装zabbix 忘记admin密码

19.1 Linux监控平台介绍 19.2 zabbix监控介绍 19.3/19.4/19.6 安装zabbix 19.5 忘记Admin密码如何做 19.1 Linux监控平台介绍: 常见开源监控软件 ~1.cacti、nagios、zabbix、smokeping、ope...

oschina130111
昨天
64
0
当餐饮遇上大数据,嗯真香!

之前去开了一场会,主题是「餐饮领袖新零售峰会」。认真听完了餐饮前辈和新秀们的分享,觉得获益匪浅,把脑子里的核心纪要整理了一下,今天和大家做一个简单的分享,欢迎感兴趣的小伙伴一起交...

数澜科技
昨天
26
0
DNS-over-HTTPS 的下一代是 DNS ON BLOCKCHAIN

本文作者:PETER LAI ,是 Diode 的区块链工程师。在进入软件开发领域之前,他主要是在做工商管理相关工作。Peter Lai 也是一位活跃的开源贡献者。目前,他正在与 Diode 团队一起开发基于区块...

红薯
昨天
43
0
CC攻击带来的危害我们该如何防御?

随着网络的发展带给我们很多的便利,但是同时也带给我们一些网站安全问题,网络攻击就是常见的网站安全问题。其中作为站长最常见的就是CC攻击,CC攻击是网络攻击方式的一种,是一种比较常见的...

云漫网络Ruan
昨天
27
0
实验分析性专业硕士提纲撰写要点

为什么您需要研究论文的提纲? 首先当您进行研究时,您需要聚集许多信息和想法,研究论文提纲可以较好地组织你的想法, 了解您研究资料的流畅度和程度。确保你写作时不会错过任何重要资料以此...

论文辅导员
昨天
44
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部