当前位置: 首页 > news >正文

20250917在荣品RD-RK3588-MID开发板的Android13系统下使用tinyplay播放wav格式的音频

input keyevent 24
1|console:/sdcard # cat /proc/asound/cards
console:/sdcard # ls -l /dev/snd/

【需要打开Android13内置的音乐应用才会有声音出来,原因未知!】
1|console:/sdcard # tinyplay /sdcard/Music/kiss8.wav -D 1 -d 0


20250917在荣品RD-RK3588-MID开发板的Android13系统下使用tinyplay播放wav格式的音频
2025/9/17 20:37


缘起:板子的音频/喇叭部分是按照荣品RD-RK3588-MID开发板设计的,但是没有声音。
排除了静音了/声音过小。
播放网页视频/wav音频都没有声音。

后来才定位到是耳机检测引脚GPIO1C4恒定为低,开机RK3588就认为是耳机模式了!
喇叭肯定没有声音了。


Y:\MID_MX_RK3588_android13-20250818\kernel-5.10\arch\arm64\boot\dts\rockchip\rk3588\rp-audio-rt5640.dtsi


/ {
rt5640-sound {
compatible = "simple-audio-card";
simple-audio-card,format = "i2s";
simple-audio-card,name = "rockchip,rt5640-codec";
simple-audio-card,mclk-fs = <256>;
simple-audio-card,widgets =
"Microphone", "Mic Jack",
"Headphone", "Headphone Jack";
simple-audio-card,routing =
"Mic Jack", "MICBIAS1",
"IN1P", "Mic Jack",
"Headphone Jack", "HPOL",
"Headphone Jack", "HPOR";
simple-audio-card,cpu {
sound-dai = <&i2s0_8ch>;
};
simple-audio-card,codec {
sound-dai = <&rt5640>;
};
};

// 2025/9/17 20:09 wenyuanbo add  Close headset for LoudSpeaker
//       rk_headset: rk-headset {
//        status = "okay";
//        compatible = "rockchip_headset";
//        headset_gpio = <&gpio1 RK_PC4 GPIO_ACTIVE_HIGH>;
//        pinctrl-names = "default";
//        pinctrl-0 = <&hp_det>;
//    };
};

&i2s0_8ch {
status = "okay";
};

&i2c7 {
status = "okay";
pinctrl-names = "default";
pinctrl-0 = <&i2c7m0_xfer>;

    rt5640: rt5640@1c {
#sound-dai-cells = <0>;
compatible = "realtek,rt5640";
reg = <0x1c>;
clocks = <&mclkout_i2s0>;
clock-names = "mclk";
realtek,in1-differential;
pinctrl-names = "default";
pinctrl-0 = <&i2s0_mclk>;
io-channels = <&saradc 4>;
hp-det-adc-value = <500>;

spk-play-volume = <7>;       ////63-0 min-max
hp-play-volume = <15>;       ////63-0 min-max
capture-volume = <127>; //0-127 min-max

               assigned-clocks = <&mclkout_i2s0>;
assigned-clock-rates = <12288000>;
};
};

// 2025/9/17 20:09 wenyuanbo add  Close headset for LoudSpeaker
//&pinctrl {
//        rt5640_pinctrl {
//                hp_det:hp_det {
//                        rockchip,pins = <1 RK_PC4 RK_FUNC_GPIO &pcfg_pull_none>;
//                };
//        };
//};


【ADB】播音的LOG:
Microsoft Windows [版本 10.0.19045.6216]
(c) Microsoft Corporation。保留所有权利。

C:\Users\QQ>adb shell
rk3588_t:/ $ su
rk3588_t:/ # input keyevent 24
rk3588_t:/ # cat /proc/asound/cards

0 [rockchipdp0    ]: rockchip-dp0 - rockchip-dp0
rockchip-dp0
1 [rockchiprt5640c]: rockchip_rt5640 - rockchip,rt5640-codec
rockchip,rt5640-codec
2 [rockchiphdmi0  ]: rockchip-hdmi0 - rockchip-hdmi0
rockchip-hdmi0
rk3588_t:/ # ls -l /dev/snd/
total 0
crw-rw---- 1 system audio 116,   3 2025-09-10 19:21 controlC0
crw-rw---- 1 system audio 116,   6 2025-09-10 19:21 controlC1
crw-rw---- 1 system audio 116,   8 2025-09-10 19:21 controlC2
crw-rw---- 1 system audio 116,   2 2025-09-10 19:21 pcmC0D0p
crw-rw---- 1 system audio 116,   5 2025-09-10 19:21 pcmC1D0c
crw-rw---- 1 system audio 116,   4 2025-09-10 19:21 pcmC1D0p
crw-rw---- 1 system audio 116,   7 2025-09-10 19:21 pcmC2D0p
crw-rw---- 1 system audio 116,  33 2025-09-10 19:21 timer
rk3588_t:/ # tinyplay /sdcard/Music/kiss8.wav -D 1 -d 0
Playing sample: 2 ch, 44100 hz, 16 bit 53268480 bytes
rk3588_t:/ # cd /sdcard/M
Movies/  Music/
rk3588_t:/ # cd /sdcard/Music/
rk3588_t:/sdcard/Music # ls -l
total 56748
-rw-rw---- 1 u0_a94 media_rw  4835832 2025-06-14 11:09 kiss8.mp3
-rw-rw---- 1 u0_a94 media_rw 53268598 2025-09-17 17:26 kiss8.wav
rk3588_t:/sdcard/Music # tin
tinycap      tinymix      tinypcminfo  tinyplay
rk3588_t:/sdcard/Music # tinyp
tinypcminfo  tinyplay
rk3588_t:/sdcard/Music # tinyplay k
kiss8.mp3  kiss8.wav
rk3588_t:/sdcard/Music # tinyplay kiss8.mp3
Error: 'kiss8.mp3' is not a riff/wave file
1|rk3588_t:/sdcard/Music #
1|rk3588_t:/sdcard/Music # tiny
tinycap      tinymix      tinypcminfo  tinyplay
1|rk3588_t:/sdcard/Music # tinyplay ki
kiss8.mp3  kiss8.wav
1|rk3588_t:/sdcard/Music # tinyplay kiss8.wav
Playing sample: 2 ch, 44100 hz, 16 bit 53268480 bytes
^Crk3588_t:/sdcard/Music #
rk3588_t:/sdcard/Music # tinyplay kiss8.wav -D 1
Playing sample: 2 ch, 44100 hz, 16 bit 53268480 bytes
rk3588_t:/sdcard/Music # tinyplay kiss8.wav -D 1 d 0
Playing sample: 2 ch, 44100 hz, 16 bit 53268480 bytes


查询rt5640声卡的I2C挂载:
rk3588_t:/ # i2cdetect -y 7
0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f
00:          -- -- -- -- -- -- -- -- -- -- -- -- --
10: -- -- -- -- -- -- -- -- -- -- -- -- UU -- -- --

20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
70: -- -- -- -- -- -- -- --
rk3588_t:/ #
rk3588_t:/ # i2cdump -y 7 0x1C
i2cdump: ioctl 703: Device or resource busy
1|rk3588_t:/ #
1|rk3588_t:/ # i2cdump -y -f 7 0x1C
0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f    0123456789abcdef
00: 00 c7 0f c8 80 00 00 00 00 00 00 00 00 00 00 08    .????..........?
10: 00 00 00 00 00 00 00 00 00 af af 00 2f 7f 00 00    .........??./?..
20: 00 00 00 00 00 00 00 70 70 80 14 54 aa 00 0c 00    .......pp??T?.?.
30: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
40: 00 00 00 00 00 00 00 00 f8 38 00 00 fc 00 00 01    ........?8..?..?
50: 00 00 01 f0 00 00 00 00 00 00 00 00 00 00 00 00    ..??............
60: 00 98 00 e8 00 c0 0c 00 00 00 00 00 04 00 00 00    .?.?.??.....?...
70: 80 80 80 01 0c 1d 00 00 00 00 00 00 00 00 00 00    ??????..........
80: 00 00 00 00 00 00 00 00 00 00 00 06 02 a0 00 11    ...........???.?
90: 07 0e 00 30 00 00 00 00 00 00 00 00 00 00 00 00    ??.0............
a0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
b0: 20 00 00 00 22 1f 00 00 03 00 00 00 00 00 00 00     ..."?..?.......
c0: 04 00 00 00 00 00 20 00 00 00 00 00 00 00 00 00    ?..... .........
d0: 06 1c 8c aa 00 00 04 00 00 08 00 00 00 00 00 00    ????..?..?......
e0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
f0: 00 00 00 00 00 00 00 00 00 00 3f 40 00 00 10 62    ..........?@..?b

rk3588_t:/ #
rk3588_t:/ # cd /sys/class/i2
i2c-adapter/  i2c-dev/
rk3588_t:/ # cd /sys/class/i2c-adapter/i2
i2c-0/   i2c-1/   i2c-10/  i2c-2/   i2c-4/   i2c-6/   i2c-7/   i2c-8/   i2c-9/
rk3588_t:/ # cd /sys/class/i2c-adapter/i2c-7
rk3588_t:/sys/class/i2c-adapter/i2c-7 # ls -l
total 0
drwxr-xr-x 3 root root    0 2025-09-17 16:47 7-001c

--w------- 1 root root 4096 2025-09-17 16:51 delete_device
lrwxrwxrwx 1 root root    0 2025-09-17 16:51 device -> ../../fec90000.i2c
drwxr-xr-x 3 root root    0 2025-09-17 16:47 i2c-dev
-r--r--r-- 1 root root 4096 2025-09-17 16:51 name
--w------- 1 root root 4096 2025-09-17 16:51 new_device
lrwxrwxrwx 1 root root    0 2025-09-17 16:51 of_node -> ../../../../firmware/devicetree/base/i2c@fec90000
drwxr-xr-x 2 root root    0 2025-09-17 16:47 power
lrwxrwxrwx 1 root root    0 2025-09-17 16:51 subsystem -> ../../../../bus/i2c
-rw-r--r-- 1 root root 4096 2025-09-17 16:47 uevent
-r--r--r-- 1 root root 4096 2025-09-17 16:51 waiting_for_supplier
rk3588_t:/sys/class/i2c-adapter/i2c-7 # cd 7-001c
rk3588_t:/sys/class/i2c-adapter/i2c-7/7-001c # ls -l
total 0
lrwxrwxrwx 1 root root    0 2025-09-17 16:51 driver -> ../../../../../bus/i2c/drivers/rt5640
-r--r--r-- 1 root root 4096 2025-09-17 16:51 modalias
-r--r--r-- 1 root root 4096 2025-09-17 16:51 name
lrwxrwxrwx 1 root root    0 2025-09-17 16:51 of_node -> ../../../../../firmware/devicetree/base/i2c@fec90000/rt5640@1c
drwxr-xr-x 2 root root    0 2025-09-17 16:47 power
lrwxrwxrwx 1 root root    0 2025-09-17 16:51 subsystem -> ../../../../../bus/i2c
lrwxrwxrwx 1 root root    0 2025-09-17 16:51 supplier:platform:fd58c318.mclkout-i2s0 -> ../../../../virtual/devlink/platform:fd58c318.mclkout-i2s0--i2c:7-001c
lrwxrwxrwx 1 root root    0 2025-09-17 16:51 supplier:platform:pinctrl -> ../../../../virtual/devlink/platform:pinctrl--i2c:7-001c
-rw-r--r-- 1 root root 4096 2025-09-17 16:47 uevent
rk3588_t:/sys/class/i2c-adapter/i2c-7/7-001c # cat name
rt5640

rk3588_t:/sys/class/i2c-adapter/i2c-7/7-001c #
rk3588_t:/sys/class/i2c-adapter/i2c-7/7-001c # reboot -p
Done
rk3588_t:/sys/class/i2c-adapter/i2c-7/7-001c #
E:\DOCX9\声音>


参考资料:
由于大家都拿到的常见音频格式为mp3,但是tinyplay只支持wav格式。
在线免费的mp3转wav网站:
https://convertio.co/zh/mp3-wav/
https://convertio.co/zh/epub-docx/


1|console:/sdcard # cat /proc/asound/cards
console:/sdcard # ls -l /dev/snd/
1|console:/sdcard # tinyplay kiss8.wav -D 0 -d 0
https://blog.csdn.net/wb4916/article/details/149885045?spm=1011.2415.3001.5331
20250803让飞凌OK3576-C开发板在Rockchip的原厂Android14下适配声卡NAU88C22YG【Android部分】

https://blog.csdn.net/wb4916/article/details/135632136?spm=1011.2415.3001.5331
20240116使用Firefly的AIO-3399J的预编译的Android10固件确认RT5640声卡信息


百度:rk3588 耳机检测
input keyvent 音量+


https://blog.csdn.net/u011774634/article/details/137873834?spm=1001.2101.3001.6650.5&utm_medium=distribute.pc_relevant.none-task-blog-2%7Edefault%7Ebaidujs_baidulandingword%7ECtr-5-137873834-blog-144431586.235%5Ev43%5Epc_blog_bottom_relevance_base5&depth_1-utm_source=distribute.pc_relevant.none-task-blog-2%7Edefault%7Ebaidujs_baidulandingword%7ECtr-5-137873834-blog-144431586.235%5Ev43%5Epc_blog_bottom_relevance_base5&utm_relevant_index=10
RK3588 Android12 拔出耳机后一段时间后系统才检测到耳机拔出的状态
https://blog.csdn.net/u011774634/article/details/137873834

原因:
耳机检测引脚HP_DET的上拉电阻阻值过大,因硬件设计耳机未插入时HP_DET为高电平,耳机插入后为低电平。当把耳机拔出后HP_DET由低电平转为高电平所需的时间较长(几十秒),所以系统在耳机拔出后一段时间后才检测到拔出事件。


https://blog.csdn.net/STM32TSZ/article/details/138584992
Linux-笔记 i2c-tools

4. i2cdump
(1)查看i2c设备所有寄存器的值,输入命令i2cdump -y -f 1 0x51
-y 取消交互过程,直接执行命令
-f 强制访问该设备
1 表示i2c总线编号
0x51 表示i2c设备地址


https://www.cnblogs.com/MrNull/p/14279118.html
adb shell按键操作(input keyevent)

每个数字与keycode对应表如下:

24 --> "KEYCODE_VOLUME_UP"
25 --> "KEYCODE_VOLUME_DOWN"



文章转载自:

http://10xCJA0x.xfxLr.cn
http://Y6iaJm5B.xfxLr.cn
http://1nkwkzIi.xfxLr.cn
http://qoImVmzO.xfxLr.cn
http://L32fWvfi.xfxLr.cn
http://d9FWSg0P.xfxLr.cn
http://XBHvD8y4.xfxLr.cn
http://Z6r08azp.xfxLr.cn
http://SbmafkBf.xfxLr.cn
http://jia1P187.xfxLr.cn
http://y9DvNVxz.xfxLr.cn
http://kubVQ2ka.xfxLr.cn
http://Kx5rcQtN.xfxLr.cn
http://dMzgWpK5.xfxLr.cn
http://7RnYKREU.xfxLr.cn
http://3HjovsAf.xfxLr.cn
http://moG5hW6M.xfxLr.cn
http://Z9o9LThO.xfxLr.cn
http://GiCQZSvg.xfxLr.cn
http://9Ya8gGzT.xfxLr.cn
http://JqCgctdH.xfxLr.cn
http://spKlyXSA.xfxLr.cn
http://JoGgy3oP.xfxLr.cn
http://1Oq5mlDw.xfxLr.cn
http://MbpHKely.xfxLr.cn
http://LTpZqAvh.xfxLr.cn
http://z2MzVZpX.xfxLr.cn
http://UFiRQDLL.xfxLr.cn
http://Psqus2Vv.xfxLr.cn
http://KqbBWYrv.xfxLr.cn
http://www.dtcms.com/a/387961.html

相关文章:

  • PAT 1013 Battle Over Cities
  • 自动驾驶车辆的网络安全威胁及防护技术
  • 《基于uni-app构建鸿蒙原生体验:HarmonyOS NEXT跨平台开发实战指南》
  • 数学_向量投影相关
  • 【完整源码+数据集+部署教程】传统韩文化元素分割系统: yolov8-seg-GFPN
  • hybrid实验
  • Prompt Engineering 技术文档
  • 《我看见的世界》- 李飞飞自传
  • TPS54302开关电源启动 1s 后输出电压掉电排查笔记 — TPS54302 5V→2.8V 案例
  • 具身智能数据采集方案,如何为机器人打造“数据燃料库”?
  • Prism模块化和对话服务
  • nas怎么提供给k8s容器使用
  • 【第五章:计算机视觉-项目实战之图像分类实战】1.经典卷积神经网络模型Backbone与图像-(8)多标签图像分类理论
  • 认知语义学中的意象图式对人工智能自然语言处理深层语义分析的影响与启示
  • [ffmpeg] 时间基总结
  • 数据结构排序入门(3):核心排序(归并排序,归并非递归排序,计数排序及排序扫尾复杂度分析)+八大排序源码汇总
  • 计算机网络七层模型理解
  • 同步与互斥学习笔记
  • 命令行方式部署OceanBase 集群部署
  • 小迪安全v2023学习笔记(八十四讲)——协议安全桌面应用hydra爆破未授权检测
  • MAC-简化版枚举工具类
  • Science Robotics 美国康奈尔大学开发的新型触觉显示器
  • Java 零基础学习指南
  • 音频剪辑总出错?音视频分割工具免费功能实测 音视频分割工具新手怎么用?4步搞定音视频分割 音视频分割工具常见问题解决:新手避坑参考
  • 线性回归与 Softmax 回归总结
  • 文字一键生成视频软件哪家比较靠谱?
  • Android,Jetpack Compose,坦克大战游戏案例Demo(随机生成地图)
  • Unity 笔记:构建AAB包大小超过谷歌商店上限
  • 在idea中git修改用户名和邮箱/切换账号
  • 设计模式(C++)详解——组合模式(Composite Pattern)(1)