audioandroid
㈠ android怎么确定audio文件的格式
android.media.AudioTrack[1]有如下的函数:•getChannelCount获得频道的个数•getChannelConfiguration 单声道还是立体声•getSampleRate 频率相关•getAudioFormat 确定是8bit 还是 16bit
㈡ android audio 怎么控制声音从A2DP和硬件同时输出
设置音量基本上有两种方法:一是用AudioManager调节系统音量,也就是所有音量都会被调节;二是使用MediaPlayer,控制播放的音效,不过也是通过调用AudioManager来实现的。二者都需要
㈢ Android裁剪之audio(音频)裁剪
源码
问题:
1.系统编译过程对应的/system/media/audio资源来自?
2.系统启动后,怎么关联三方调用?
㈣ 如何在Android平台上使用USB Audio设备
Android对USB的支持有两种模式:
HOST模式:Android设备为USB总线和外设供电,数据传输是双向的。
Accessory模式:即附件模式,Android作为附件,手机和电脑连接,通常是这种模式,由USB Device端向总线供电,数据传输方向是双向的。这就是为什么手机插到电脑上可以充电的原因。
在讨论具体代码之前,需要先讲一下再host模式下面的调试办法,因为数据线的端口被外设使用了,那么,传统的连接数据线调试的方法已经不行了。官网给出了解决办法:
1、请把Android设备用数据线连接到电脑,当然,也要把Android设备的wifi打开。
2、在windows命令行下,进入SDK platform-tools/ 目录(具体看SDK安装在哪个目录了),执行 adb tcpip 5555 回车。这里其实是打开了adb调试的无线端口(Android设备在电脑上的端口映射),其实后面的数字可以随便来,只要端口没有被占用。
㈤ android audio 怎么切换到dmic
android audio 切换到dmic 的办法
tinyalsa访问设备节点应该是/dev/snd/pcmCxDxp, /dev/snd/pcmCxDxc和/dev/snd/controlCx,画图时没有确认造成笔误这个框图大致把soundrecorder从app到framework到HAL的类图画了出来
2.有些子类父类继承关系没有表示出来,从soundrecorder到AudioRecord基本就是一条线下来
3.我也没有详细去看代码,stagefright这一块很庞大,实现了多种mime格式的编解码
音频数据生成文件保存在sd卡中应该是在MPEG4Writer这里完成的,这个没有细看
我们重点看下AudioSystem,AudioPolicyService,AudioFlinger和AudioHardware这块。
4.以open_record()和get_input()这两个方法为例我们看下这几个类之间的调用关系
从AudioRecord.cpp开始,文件位置:frameworksasemedialibmediaAudioRecord.cpp
㈥ Android audio文件夹下没有notification文件夹是怎么回事
在SD卡根目录上建立“media”然后在里面建立“audio",里面再分别建立“notifications”“alarms”“ringtones“三个文件夹,对应短信铃声、闹钟铃声、来电铃声,然后把你想要的铃声放进文件夹里面。这是android自定义铃声的步骤。然后你想自定义短信铃声,在audio里又没有notification,于是你就产生了以上的疑问,对不对?没有你自己创建一个就行了,系统会识别的。
㈦ Android 中怎么实现微信内置浏览器audio的自动播放
参考下面方法
加入stalled事件处理,发生stalled则重新audio.load() ; audio.play(); 或者保证audio.load()后,在canplaythrogh事件(或者readyState大于2后)进行audio.play()
㈧ 安卓audio时长加载为0
audio里面的资源没有预加载
安卓audio时长加载为0是因为 audio里面的资源没有预加载,直接设置currentTime会导致currentTime设置无效并且重置为0,要想手动设置currentTime生效,那么需要设置audio的preload属性auto是使文件预加载
㈨ 安卓audio标签播放延迟现象严重 有什么解决方法
安卓 html5 audio mp3 apk html5写的网页打包成安卓apk文件,里面有个audio标签是做网站背景音乐的。
HTML5 打包成安卓audio可能会无法播放。 1.路径本问题,可能存在打包之后的路径错误。 2.解析错误。 3.安卓内置的浏览器对audio标签存在约束。。
㈩ Android Audio简述
audio是Android系统是比较重要的一个模块,本人也涉足时间不是很长,经验还是很少的,只是把自己在工作中所遇到的问题记录。
Audio 即音频, 也就是控制着手机中的各种声音的输出,比如说,音乐的播放,音量大小,按键音,插入耳机,声音从耳机播放,连接蓝牙,声音从蓝牙耳机中播放。还有一些HiFi播放, offload播放,高清播放。
常见的问题如下:
POP音,漏音,声音卡顿,耳机无法识别,还有一些音频通路等问题,还有一些稳定性的问题如:ANR、CRASH、tombstone。还有一些安全漏洞的问题(主要是核心库那里)。
回归正题
-------华丽的分割线-------
audio分为 应用层,fwk层,native fwk, hal层。
常见的文件有MediaPlayer.java、 AudioSystem.java、 AudioService.java、AudioManager.java 文件路径(framework/base/media)
AudioFlinger.cpp、AudioTrack.cpp、 AudioPolicyManager.cpp、 Threads.cpp、Tracks.cpp、 Engine.cpp、 Audiosystem.cpp 文件路径(framework/av)
audio_hw.c 文件路径(vendor/)
java文件我在这里就不过多的说了,没啥好讲的,主要说一下c++文件吧。
AudioFlinger 是音频策略的执行者, AudioPolicyManager是制作音频策略的,AudioTrack是负责播放从上层传过来的PCM数据,简单的说就是负责播放的。
audio_hw 是每个HAL层的文件,每个手机厂商自己定制的文件。当然Google也有。
一般呢,我们处理音频相关的问题呢,有一些特定的套路,需要AP 侧的log, 有时还需要kernel 的log, 当然最主要的是需要音频数据。也就是出现问题时,的声音数据,让我们可以快速的定位出现问题的位置。
简单的说下播放一首歌曲的流程:(以Android O 为例)
上层创建一个MediaPlayer对象,然后调用NuPlayer框架(播放器),NuPlayer先将当前歌曲的文件信息读取,采样率,比特率,等之类的东西。然后开始调用audio decoder (音频解码器) 将解码出来的PCM数据传给AudioTrack, Audiotrack 会创建一个Track,(每一个播放都会创建一个属于自己的track,不用了就销毁,最多可以同时创建32个),经过AudioFlinger重采样之后,送到HAL层,HAL层在经过一些混音,降噪之类的处理,将声音送到Codec,然后送给硬件输出,进行播放。
这个是一个大概的播放流程,如果我们在播放过程中遇到了一些问题,比如说是fwk层的问题,我们就在AudioTrack与AudioFlinger之间寻问题的原因。
比如说,播放无声,我们需要看AudioPolicyManager中的一些策略是不是将当前的track给mute了。或者是一些其他的原因等。
这里只是简单的介绍下Audio,Audio算是一个较为复杂的模块,还需要好好的研究。