点击蓝字 ╳ 关注我们
陈甲印
鸿湖万联资深技术专家
![](https://file1.elecfans.com//web2/M00/9B/52/wKgaomTnpqeAUqNSAABPa1tqYeY567.png)
1 功能描述
![](https://file1.elecfans.com//web2/M00/9B/52/wKgaomTnpqeADB2jAAEnzJ5d8KA220.png)
2 准备工作
![](https://file1.elecfans.com//web2/M00/9B/52/wKgaomTnpqeAUPHmAAGPF-a6J-A685.png)
![](https://file1.elecfans.com//web2/M00/9B/52/wKgaomTnpqeAeDxGAAAP6gtOWoU529.jpg)
![](https://file1.elecfans.com//web2/M00/9B/52/wKgaomTnpqiAPip2AACnl_nOIbU666.png)
![](https://file1.elecfans.com//web2/M00/9B/52/wKgaomTnpqiAe-mXAAA1nUttxV8977.png)
3 代码介绍
├── audio_config.hcs // 此配置文件配置声卡信息
├── codec_config.hcs // 此配置文件配置codec信息
├── dai_config.hcs // 此配置文件配置dai信息
└── dma_config.hcs // 此配置文件配置platform信息
vendor/isoftstone/yangfan/hdf_config/khdf/device_info/
device_info.hcs//此配置文件配置声卡驱动服务信息
4 构建开关
5 功能配置
audio :: host {
hostName = "audio_host";
priority = 110;
device_dai :: device {...
device_hdmi :: deviceNode {
policy = 1;
priority = 50;
preload = 0;
permission = 0666;
moduleName = "DAI_RK3568";
serviceName = "hdmi_dai_service";
deviceMatchAttr = "hdf_hdmi_dai_driver";
}
}
device_codec :: device {...
device_hdmi :: deviceNode {
policy = 1;
priority = 50;
preload = 0;
permission = 0666;
moduleName = "AUDIO_HDMI_CODEC";
serviceName = "codec_service_1";
deviceMatchAttr = "hdf_codec_driver_1";
}
...
}
...
device_dma :: device {...
device_hdmi :: deviceNode {
policy = 1;
priority = 50;
preload = 0;
permission = 0666;
moduleName = "DMA_RK3568";
serviceName = "hdmi_dma_service_0";
deviceMatchAttr = "hdf_hdmi_dma_driver";
}
...
}
device_audio :: device {...
device_hdmi :: deviceNode {
policy = 2;
priority = 60;
preload = 2;
permission = 0666;
moduleName = "HDF_AUDIO";
deviceMatchAttr = "hdf_audio_driver_1";
serviceName = "hdf_audio_codec_hdmi_dev0";
}
...
}
...
}
root {
platform {
...
controller_0x120c1001 :: card_controller {
match_attr = "hdf_audio_driver_1";
serviceName = "hdf_audio_codec_hdmi_dev0";
codecName = "codec_service_1";
platformName = "hdmi_dma_service_0";
cpuDaiName = "hdmi_dai_service";
codecDaiName = "hdmi_codec_dai";
}
...
}
}
root {
platform {
template dma_controller {
match_attr = "";
serviceName = "";
}
...
controller_0x120c1011 :: dma_controller {
match_attr = "hdf_hdmi_dma_driver";
serviceName = "hdmi_dma_service_0";
idInfo {
chipName = "/i2s@fe400000"; // 根据hdmi驱动芯片连接的I2S总线地址进行配置
chipIdRegister = 0xfe400000; // 根据hdmi驱动芯片连接的I2S总线地址进行配置
chipIdSize = 0x1000;
}
regConfig {
daiStartupSeqConfig = [
0x00, 0, 0, 0, 0xFFFFFFFF, 0xFFFFFFFF, 0, 0x0, //Transmit Operation Init
];
}
}
}
}
root {
platform {
template dai_controller {
match_attr = "";
serviceName = "";
}
...
controller_0x120c1021 :: dai_controller {
match_attr = "hdf_hdmi_dai_driver";
serviceName = "hdmi_dai_service";
idInfo {
chipName = "/i2s@fe400000"; // 根据hdmi驱动芯片连接的I2S总线地址进行配置
chipIdRegister = 0xfe400000; // 根据hdmi驱动芯片连接的I2S总线地址进行配置
chipIdSize = 0x1000;
}
regConfig {
daiStartupSeqConfig = [
0x00, 0, 0, 0, 0xFFFFFFFF, 0xFFFFFFFF, 0, 0x0, //Transmit Operation Init
];
}
}
}
}
root {
platform {
template codec_controller {
match_attr = "";
serviceName = "";
codecDaiName = "";
}
...
controller_0x120c1031 :: codec_controller {
match_attr = "hdf_codec_driver_1";
serviceName = "codec_service_1";
codecDaiName = "hdmi_codec_dai";
hwInfo = [
/*
formats, rates, rate_min, rate_max, channels_min, channels_max,
period_bytes_min, period_bytes_max, periods_min, periods_max
*/
0xF, 0xFF, 8000, 96000, 1, 2, 1, 2, 3, 4, 5
];
}
...
}
6 应用样例
--product-name yangfan -T audio_sample_render -T audio_sample_capture -T audio_sample_event
hdc shell
cd /data/
./audio_sample_renderYoungForYou.wav
7 功能验证
hdc file send E:audio_sample_render /data
hdc file send E:audio_sample_event /data
hdcfilesendE:xxx.wav/data
hdc shell
cd/data/#chmod+xaudio_sample_event#./audio_sample_event
===============================================================================
===============================================================================
===============================================================================
===============================================================================
hdc shell
# cd /data/# chmod +x audio_sample_render## ./audio_sample_render YoungForYou.wav
==================== Loading Mode ===================
| 1. Passthrough Loading |
| 2. IPC Loading |
======================================================
Please enter your choice:
2
================= Select Audio Card ==================
1. primary
2. primary1
3. hdmi
4. usb
5. a2dp
======================================================
Please enter your choice:
3
================== Play Render Menu ==================
| 1. Render Start |
| 2. Render Stop |
| 3. Render Resume |
| 4. Render Pause |
| 5. Render SetVolume |
| 6. Render GetGain |
| 7. Render SetMute |
| 8. Render SetAttributes |
| 9. Render SelectScene |
| 10. Render getEXtParams |
| 11. Render getMmapPosition |
| 12.Exit |
======================================================
your choice is:
1
Music channels = 2
Music Rate = 44100 Hz
Music Bit = 16 bit
============= Play Render Mode ==========
| 1. Render non-mmap |
| 2. Render mmap |
========================================
Please enter your choice:
1
Start Successful,Music is playing
================== Play Render Menu ==================
| 1. Render Start |
| 2. Render Stop |
| 3. Render Resume |
| 4. Render Pause |
| 5. Render SetVolume |
| 6. Render GetGain |
| 7. Render SetMute |
| 8. Render SetAttributes |
| 9. Render SelectScene |
| 10. Render getEXtParams |
| 11. Render getMmapPosition |
| 12.Exit |
======================================================
your choice is:
2
Stop Successful
================== Play Render Menu ==================
| 1. Render Start |
| 2. Render Stop |
| 3. Render Resume |
| 4. Render Pause |
| 5. Render SetVolume |
| 6. Render GetGain |
| 7. Render SetMute |
| 8. Render SetAttributes |
| 9. Render SelectScene |
| 10. Render getEXtParams |
| 11. Render getMmapPosition |
| 12.Exit |
======================================================
your choice is:
12
8 总结
原文标题:OpenHarmony支持HDMI接口声卡适配说明
文章出处:【微信公众号:OpenAtom OpenHarmony】欢迎添加关注!文章转载请注明出处。
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。
举报投诉
-
鸿蒙
+关注
关注
57文章
2398浏览量
43133 -
OpenHarmony
+关注
关注
25文章
3753浏览量
16718
原文标题:OpenHarmony支持HDMI接口声卡适配说明
文章出处:【微信号:gh_e4f28cfa3159,微信公众号:OpenAtom OpenHarmony】欢迎添加关注!文章转载请注明出处。
发布评论请先 登录
相关推荐
HDMI Forum发布HDMI 2.2接口规范
2.2接口规范的推出,为电视、电影和游戏工作室等内容制作商提供了更高质量的选择。随着高清内容的不断普及,用户对音视频质量的要求也越来越高。HDMI 2.2接口规范不仅满足了这一需求,还支持
HDMI接口类型有哪些 HDMI接口与DisplayPort接口的比较
HDMI(High-Definition Multimedia Interface,高清晰度多媒体接口)是一种用于传输高清视频和音频的接口标准。以下是一些常见的HDMI
HDMI接口支持哪些视频分辨率
HDMI(High-Definition Multimedia Interface)接口支持的视频分辨率因版本不同而有所差异。以下是HDMI接口
HDMI接口的作用和功能 HDMI接口与VGA接口的区别
是HDMI接口的主要作用和功能: 高清视频传输 :HDMI接口能够传输高分辨率的视频信号,支持多种视频格式,包括1080p、4K、8K等。
dp接口适配器常见问题及解决方案
设备不支持DP接口,或者在连接时出现兼容性问题。 解决方案: 确认设备的DP接口版本是否匹配。不同版本的DP接口可能存在兼容性问题。 使用转换器或适
dp接口适配器与HDMI的区别
, Inc.(HDMI LA)负责制定标准。HDMI接口最初是为了取代传统的模拟视频接口而设计的,它能够传输高清视频和音频信号,支持多种分辨
dp接口适配器如何连接显示器
在现代显示技术中,DP接口因其高速数据传输能力和对高分辨率视频的支持而越来越受欢迎。然而,并非所有的显示器和图形输出设备都配备了DP接口。 DP接口
VGA转HDMI适配器使用指南
Multimedia Interface)接口的普及,越来越多的设备开始支持HDMI。 什么是VGA转HDMI适配器 VGA转
dp接口与hdmi接口的区别
在现代显示技术中,DP(DisplayPort)和HDMI(High-Definition Multimedia Interface)接口是连接显示器和视频源的标准接口。它们都支持高分
主板声卡被HDMI屏蔽了怎么办
主板声卡被HDMI屏蔽了,通常是指在连接HDMI音频输出设备(如显示器、电视等)时,系统自动将音频输出切换到HDMI设备,导致主板上的集成声卡
USB声卡支持SPDIF格式吗
高质量的音频信号。那么,USB声卡是否支持SPDIF格式呢? USB声卡的基本概念 USB声卡是一种通过USB接口传输音频信号的设备,它具有
HDMI光纤线缆支持对接头吗
HDMI光纤线缆支持对接头,但具体支持的对接头类型和规格可能会因线缆型号、品牌和接口版本的不同而有所差异。 HDMI线是一种高清晰多媒体
HDMI接口和DVI接口有什么区别
接口有单链路(18针)和双链路(24针)两种模式。 传输速率: HDMI接口的传输速率随版本升级而提高。HDMI 1.3支持5Gbps,
评论