音频播放时

wakelock

的实现

作者

:Macro Liu

功能描述

:

当播放音乐时,按电源键只需要进入

early suspend,

以保持音乐播放状态。

实现方法

:

在上层和内核都加

wakelock

保证机器不会休眠。

测试发现如果只在内核加

wakelock,

early suspend

时,

上层会进入

suspend

不再处理音量键,所以不能控制音量。

相关代码

:

休眠字符串名字为

AudioOutLock

Framework

:

device\samsung\proprietary\libaudio\AudioHardware.cpp

只要音乐播放状态时,会执行

write

函数,写入音频数据

,

所以在此函数处加

wakelock.

AudioHardware::AudioStreamOutALSA::write

{

AutoMutex hwLock(mHardware->lock());

LOGD("AudioHardware pcm playback is exiting standby.");

acquire_wake_lock (PARTIAL_WAKE_LOCK, "

AudioOutLock

");

}

doStandby_l

release_wake_lock

以释放

wakelock

void AudioHardware::AudioStreamOutALSA::doStandby_l()

{

mStandbyCnt++;

if (!mStandby) {

LOGD("AudioHardware pcm playback is going to standby.");

release_wake_lock("

AudioOutLock

");

mStandby = true;

}

androidwakelock_Android音频播放时wakelock的实现相关推荐

  1. CSS动画实现音频播放时柱状波动效果

    通过CSS的动画属性animation可以实现音频播放时的动画效果,同时配合JS操作动画的animation-play-state属性,来控制动画的暂停和播放. 网页布局采用的flex布局.若在客户端 ...

  2. 音频播放时,将前台服务和通知栏关闭

    正在播放音频下,退出登录或被挤下线等情况下,就要遇到下列情况 问题:播放时设置服务前台运行,创建一个消息通知栏 service.startForeground(NOTIFICATION_ID, new ...

  3. android 音频播放时小喇叭动画

    drawable 目录下创建button_play_animation.xml 动画 <?xml version="1.0" encoding="utf-8&quo ...

  4. 音频播放时小喇叭动画

    drawable 目录下创建button_play_animation.xml 动画 <?xml version="1.0" encoding="utf-8&quo ...

  5. java 上传mp3文件大小,Java获取音频文件(MP3)的播放时长

    最近的一个项目需要按照时间播放mp3文件,例如,播放10分钟的不同音乐. 这就意味着我得事先知道mp3文件的播放时长,以决定播放几遍这个文件. 方案一:Java的方式 找第三方的库,真的感谢这些提供j ...

  6. 微信小程序-音频播放-wx.createInnerAudioContext() 每次都是重复播放同一条录音

    前言 在调试微信小程序音频播放时,刚开始我也是直接复制官方文档的实例: const innerAudioContext = wx.createInnerAudioContext() innerAudi ...

  7. android 音频播放过程,一种Android系统中的音频播放方法与流程

    本申请涉及android系统技术,特别涉及一种android系统中的音频播放方法. 背景技术: 在android系统中,现有的使用audiotrack进行音频播放时,audiotrack应用与andr ...

  8. uniapp实现微信小程序音频播放倒计时的功能,类似微信语音条

    uniapp实现微信小程序音频播放功能 最近需要有个项目需要用到音频播放,第一个想到的是audio标签,但是查阅了uniapp官方文档,发现audio组件已经不维护了. 官网推荐使用uni.creat ...

  9. 微信小程序-音频播放 每次都是重复播放同一条录音

    前言 在调试微信小程序音频播放时,刚开始我也是直接复制官方文档的实例: const innerAudioContext = wx.createInnerAudioContext() innerAudi ...

最新文章

  1. TypeError: ord() expected string of length 1, but int found
  2. svm c++实现_机器学习笔记——SVM向量机
  3. 如何在ARM开发板上从源码编译安装OpenCV和OpenCV contrib
  4. 管理已“死”,经营为王时代来临
  5. 物联网面临的7大网络安全威胁
  6. 网络推广方案中解析SEO优化文章的标题设置技巧
  7. ueditor版本python3_GitHub - crazyinstall/DjangoUeditor3: Django Ueditor 兼容Python3改进,Python2上也可用...
  8. POJ 3104 Drying [二分 有坑点 好题]
  9. UVa 10635 (LIS+二分) Prince and Princess
  10. php中创建函数的正确方法,如何在PHP中创建一个函数
  11. 神经网络动态可视化工具
  12. SSD---系统架构
  13. ORCA(Optimal Reciprocal Collision Avoidance)笔记
  14. 织梦CMS插件合集覆盖几十插件功能采集推送等
  15. 2019拼多多前端笔试题
  16. 帧定格(用于定格画面添加字幕或者图片)
  17. usaco#2018#January#Silver
  18. [最新]Myeclipse 10.7.1 激活工具及过程详解 亲测
  19. ASEMI代理ON/安森美FGH40N60SMD原厂渠道车规级IGBT
  20. 使用animate库

热门文章

  1. 模型也可以上网课?!一文看懂服务型蒸馏训练方案
  2. 决策树算法的原理(接地气版)
  3. pandas高级处理-数据离散化
  4. 爬虫之xml和html的区别
  5. scrapy创建以及启动项目步骤!
  6. 2021世界上“最猎奇”“最难的”六大编程语言
  7. 卷积神经网络是如何实现不变性特征提取的
  8. 面试官:连YOLO都搞不定,是自己走还是我送你
  9. 栈与队列7——单调栈结构(进阶问题)
  10. 关于Spring中的context:annotation-config/配置(开启注解)