把Android 采集的音频,通过RTP推送到远程进行实时播放

主要步骤

  • 通过AudioRecord采集音频数据
  • 把采集的音频写入文件通过AudioTrack进行播放
  • 把采集的数据包加RTP头,通过udp发送到远程
  • 可以用vlc对接收到的数据进行实时播放

注意事项

  • 权限添加(android6.0及以上系统需要动态申请录音,读写文件的权限)
    <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
    <uses-permission android:name="android.permission.RECORD_AUDIO"/>
    <uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS"/>
    <uses-permission android:name="android.permission.INTERNET"/>
v=2
o=- 15944158611390545897 15944158611390545897 IN IP4 bogon
s=Unnamed
i=N/A
c=IN IP4 192.168.8.121
t=0 0
a=tool:vlc 2.2.6
a=recvonly
a=type:broadcast
a=charset:UTF-8
m=audio 1234 RTP/AVP 96
b=AS:192
b=RR:0
a=rtpmap:96 L16/48000/2
  • 录音噪音的问题(主要有录的噪音,发送的噪音这两种。录的噪音可以参考:http://www.bijishequ.com/detail/313446?p=,发送后产生的噪音,要确保添加RTP头的12个字节的准确性)
  • 实时播放延时问题 (用客户端发给vlc播放,时间越长延时越大,自己写一个服务器接收不会出现越来越大的延时)

其他

  • 播放RTP流,直接去掉收到的每一帧数据的前十二个字节,直接丢到播放器里进行播放。
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容