android播放器开源项目,HwAudioSource 播放器

HwAudioSource 将音频来源设备直接连接到 Android 混音器。

动机

在 Android 中使用设备到设备或硬件音频补丁程序时,可能会存在一些限制。这些限制会导致无法接收 PLAY、PAUSE 和 STOP 等媒体键事件,因为这些事件会绕过 Android 音频堆栈,因此需要配备硬件以将补丁程序混合到 Android 的其他音频中。

使用 HwAudioSource

HwAudioSource 是一种新型的播放器,设计为软件补丁程序。因此,使用此播放器来接收媒体键事件和输出流的应用能够通过 Android 进行混合和路由。

mHwAudioSource = new HwAudioSource.Builder()

.setAudioDeviceInfo(AudioDeviceInfo: info)

.setAudioAttributes(new AudioAttributes.Builder()

.setUsage(AudioAttributes.USAGE_MEDIA)

.build())

.build();

mHwAudioSource.play();

mHwAudioSource.stop();

音频 HAL 的更改

使用此新型播放器时,对音频 HAL(例如,device/generic/car/emulator/audio/driver/audio_hw.c)存在几项要求:

Adev_create_audio_patch 请求建立从设备到混音器的音频补丁程序。这不需要任何特殊操作。

Adev_open_input_stream 要求 audio_source 为 AUDIO_SOURCE_FM_TUNER

In_read 使用实际的广播电台音频数据填充音频缓冲区

建议在 audio_policy_configuration.xml 中配置类型为 AUDIO_DEVICE_IN_FM_TUNER 的调谐器设备:

tagName="Tuner_source"

type="AUDIO_DEVICE_IN_FM_TUNER"

role="source"

address="tuner0">

name=""

format="AUDIO_FORMAT_PCM_16_BIT"

samplingRates="48000"

channelMasks="AUDIO_CHANNEL_IN_STEREO"/>

通过此设备配置,结合使用 AudioManager.getDevices(AudioManager.GET_DEVICES_INPUTS) 与 AudioDeviceInfo.TYPE_FM_TUNER可便于查找 FM 电台输入设备。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值