美文网首页Android开发杂记
把Android 采集的音频,通过RTP推送到远程进行实时播放

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

作者: 浅吟且行的时光 | 来源:发表于2017-10-11 17:09 被阅读192次

    主要步骤

    • 通过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流,直接去掉收到的每一帧数据的前十二个字节,直接丢到播放器里进行播放。

    相关文章

      网友评论

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

        本文链接:https://www.haomeiwen.com/subject/bbywyxtx.html