Android 收音机相关知识
2023-04-26 13:06:12发布 浏览497次 信息编号:50334
友情提醒:凡是以各种理由向你收取费用,均有骗子嫌疑,请提高警惕,不要轻易支付。
Android 收音机相关知识
调频收音机
概述
手机硬件的调谐芯片通过接收和解调电台发出的电磁波的调频(FM)或调幅(AM)信号,播放和显示相应的节目信息。 因此,本地广播应用一般不需要联网,其核心依赖于硬件调谐芯片。 所以不是所有的手机都能收听本地电台,但是大部分手机都支持。
无线电基础
收音机的核心原理是:广播播音员播放的音频经设备处理成电信号,用无线电波进行调频或调幅发射。 信号放大等操作输出到扬声器,将电信号还原为音频信号。
收音机其他信息RDS功能
RDS的全称是“Radio Data”无线数据广播系统; 如果只有信号波,电台显示的信息会很单调。 只能显示当前频率。 台名、节目信息、介绍等相关信息需要通过RDS传输。 它利用调频广播传输信号中的副载波,以数字形式发送电台名称等信息。 在收音机端,具有RDS功能的调谐芯片解析出信息并显示出来。
使用RDS的前提是:电台和收音调谐芯片必须同时支持RDS功能; 但目前只有少数电台支持 RDS。
RDS有两个核心功能:AF和TA;
AF是指当当前电台信号低于一定值时,自动搜索该电台信号好的其他频道并自动切换。 为了达到更好的用户体验。
TA功能是强制播放功能。 如有重大事故、紧急通知等交通信息,将强制切换到该频率播放。
开发FM收音机源码分析层次结构:
硬件(芯片厂商提供)->HAL(遵循HAL接口协议)->C动态库(JNI调用)->()->(逻辑和接口)
此类隐藏在系统 API 中。 如果要在里面编译,需要做一些处理。 可以自己查,不过应该是需要得到.jar
分析:
1- 控制面板的显示:以桌面小部件的形式显示。 通过无线电与 App FM 互动。
2- 单击空白区域以打开并启动界面。 在界面上操作,但需要考虑如果直接通过控制面板操作的话,不用启动也能玩。 所以必须有一个核心服务在后台运行,不依赖于接口。
3- 外部控件也应该和交互。需要考虑它的可扩展性
4- 监控焦点增益和损失并执行逻辑处理。
设计:
实际运行的核心服务
主界面
控制面板
代码设计模式:这个自己看吧,这里用到了MVP模式。 然后会有两个:
无线电核心操作(包括音频处理)
最喜欢的操作
对于其他外部控件,只需要设计数据交互方式即可。
实施调频收音机
通过JNI访问HAL层
.cpp
注册好JNI后,开始访问。 需要注意的是系统app不能直接通过.2后的繁体()启动,会造成权限问题。 因为4.2之后引入了多用户操作调频手机收音机,所以需要通过以下方式启动
(,(.));
车机开发无线电应用开发
关于收音机调试开发逻辑,首先要明白收音机功能是一个独立的硬件模块。 即使没有收音机apk调频手机收音机,这个功能应该还是可以从小喇叭里听到收音机的声音。 收音机apk的开发就是为了方便用户查看收音机信息。 只是为了控制和调音,但是对于车机来说,就算你什么都不做,至少也应该给MCU发一个 命令,通知MCU把声道切换到收音机芯片,否则会有即使接收到收音机也不会发出声音。 因为车载设备中有多个音源模块和音效芯片,谁切小喇叭,谁就发出声音; 以下是开发过程:
S700平台开发radio apk应用的数据通信流程:
(1) 首先,收音机是单独的一个硬件模块(6831),功能都是mcu去实现去控制的,跟应用层没关系,我们的Radio收音机apk只是拿到mcu发来的数据进行显示,仅此而已,应用层基本干不了什么实际操作,无非就是调用几个api接口发送某些指令可以简单通知mcu去控制收音机模块,这是对收音机apk开发的一个整体的认识;
(2) 其次,数据初始化问题:在apk主界面打开时通过发送指令去拿,然后更新UI,无非就是当前波段,当前频率,预存电台列表等信息,有seekbar则需要将当前频率转换成seekbar的进度值设置到seekbar中即可,没有就不需要;
(3) 最后,做法问题:之前的做法都是FM分FM1和FM2以及FM3,每个FM都有6个预存电台,现在只返回一个FM1就代表是FM波段,并直接返回18个预存电台信息;AM也是一样,之前是分AM1和AM2,现在直接是返回AM1就代表AM波段了,返回6个预存电台,点击UI界面FM和AM按钮时切换波段发送指令分别是mMcuManager.mcuRadioBandSet(39)和McuManager.mcuRadioBandSet(42),之前的FM2,FM3,AM2对应的指令基本就作废了,无用了;全局搜索电台功能是点击按钮调用mMcuManager.mcuRadioScan()接口去实现的,这个搜索是从头到尾搜索,搜索到的电台会依次存到18个预存电台中,等到搜索完成之后会每个电台播放几秒钟供用户自己选择,如果不选择,那么等所有搜索到的台播放完之后就会跳到第一个搜索到的电台;向上向下搜索都是搜到可用电台就停止下来不会继续搜索了;6831收音机芯片是支持RDS的,但是RDS国外才会使用到的,国内无效;
提醒:请联系我时一定说明是从星空网上看到的!