android audio 相机按键音:(二)加载与修改

相机按键音资源,加载文件路径:

frameworks/av/services/camera/libcameraservice/CameraService.cpp

按键音,加载函数:

void CameraService::loadSoundLocked(sound_kind kind) {

ATRACE_CALL();

LOG1("CameraService::loadSoundLocked ref=%d", mSoundRef);

if (SOUND_SHUTTER == kind && mSoundPlayerSOUND_SHUTTER == NULL) {

// 拍照按键音资源加载

mSoundPlayerSOUND_SHUTTER = newMediaPlayer("/product/media/audio/ui/camera_click.ogg");

if (mSoundPlayerSOUND_SHUTTER == nullptr) {

mSoundPlayerSOUND_SHUTTER = newMediaPlayer("/system/media/audio/ui/camera_click.ogg");

}

} else if (SOUND_RECORDING_START == kind && mSoundPlayerSOUND_RECORDING_START == NULL) {

// 录像启动按键音资源加载

mSoundPlayerSOUND_RECORDING_START = newMediaPlayer("/product/media/audio/ui/VideoRecord.ogg");

if (mSoundPlayerSOUND_RECORDING_START == nullptr) {

mSoundPlayerSOUND_RECORDING_START = newMediaPlayer("/system/media/audio/ui/VideoRecord.ogg");

}

} else if (SOUND_RECORDING_STOP == kind && mSoundPlayerSOUND_RECORDING_STOP == NULL) {

// 录像停止按键音资源加载

mSoundPlayerSOUND_RECORDING_STOP = newMediaPlayer("/product/media/audio/ui/VideoStop.ogg");

if (mSoundPlayerSOUND_RECORDING_STOP == nullptr) {

mSoundPlayerSOUND_RECORDING_STOP = newMediaPlayer("/system/media/audio/ui/VideoStop.ogg");

}

}

}

用户可以自定义修改,按键音:

替换按键音资源,直接替换camera_click.ogg,VideoRecord.ogg,VideoStop.ogg。

禁止按键音,可以直接删除资源或在资源加载过程进行禁止修改。

声音资源路径:

frameworks\base\data\sounds\effects\ogg

camera_click.ogg

camera_click_48k.ogg

adb查看设备,声音资源路径:

a71x:/system/media/audio/ui $ ls -al camera*

-rw-r--r-- 1 root root 8703 2008-12-31 23:00 camera_click.ogg

-rw-r--r-- 1 root root 9376 2008-12-31 23:00 camera_focus.ogg

相关推荐
像我这样帅的人丶你还2 小时前
Java 后端详解(三):全局异常处理与 JPA 数据库映射
java·后端
NE_STOP2 小时前
vibe Coding -- 小项目实战
java
未秃头的程序猿8 小时前
Java 26正式发布!这3个新特性,让代码量直接减半
java·后端·面试
37手游移动客户端团队8 小时前
招聘-高级安卓开发工程师
android·客户端
用户298698530148 小时前
Word 文档文本查找与替换的 Java 实现方案
java·后端
阿哉8 小时前
Nacos 服务发现源码:藏在背后的两套事件机制,90%的人只讲了一半
java
用户41659673693558 小时前
WebView 请求异常排查操作手册
android·前端
咖啡八杯9 小时前
GoF设计模式——命令模式
java·设计模式·架构
AI人工智能_电脑小能手9 小时前
【大白话说Java面试题 第125题】【并发篇】第25题:说说 Java 线程的中断机制
java·后端·面试
Java内核笔记9 小时前
Spring Security 源码解析(六)无状态 JWT 实践:Session 共享与自定义过滤器
java·后端