第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

將實時Android音頻流傳輸到服務器

將實時Android音頻流傳輸到服務器

喵喵時光機 2020-02-04 15:38:39
我目前正在嘗試將直播麥克風音頻從Android設備流式傳輸到Java程序。我首先在兩個android設備之間發(fā)送實時音頻,以確認我的方法正確。在接收設備上幾乎沒有任何延遲地可以完美地聽到音頻。接下來,我將相同的音頻流發(fā)送到一個小型Java程序,并驗證了數據也已正確發(fā)送到此處?,F(xiàn)在,我想要做的是對這些數據進行編碼,并以某種方式在運行Java程序的服務器上對其進行回放。我寧愿在使用HTML5或JavaScript的網絡瀏覽器中播放它,但可以使用VLC等替代方法。這是發(fā)送實時麥克風音頻的Android應用的代碼public class MainActivity extends Activity {private Button startButton,stopButton;public byte[] buffer;public static DatagramSocket socket;    AudioRecord recorder;private int sampleRate = 44100;   private int channelConfig = AudioFormat.CHANNEL_CONFIGURATION_MONO;    private int audioFormat = AudioFormat.ENCODING_PCM_16BIT;       int minBufSize = AudioRecord.getMinBufferSize(sampleRate, channelConfig, audioFormat);    private boolean status = true;@Overrideprotected void onCreate(Bundle savedInstanceState) {    super.onCreate(savedInstanceState);    setContentView(R.layout.activity_main);     startButton = (Button) findViewById (R.id.start_button);     stopButton = (Button) findViewById (R.id.stop_button);     startButton.setOnClickListener(startListener);     stopButton.setOnClickListener(stopListener);     minBufSize += 2048;}@Overridepublic boolean onCreateOptionsMenu(Menu menu) {    getMenuInflater().inflate(R.menu.main, menu);    return true;}這是Java程序讀取數據的代碼。class Server{   public static void main(String args[]) throws Exception      {         DatagramSocket serverSocket = new DatagramSocket(50005);            byte[] receiveData = new byte[1024];            byte[] sendData = new byte[1024];            while(true)               {                  DatagramPacket receivePacket = new DatagramPacket(receiveData, receiveData.length);              serverSocket.receive(receivePacket);              String sentence = new String( receivePacket.getData().toString());              System.out.println("RECEIVED: " + sentence);           }  }}我知道在將音頻發(fā)送到Java程序之前,應該先在應用程序端對音頻進行編碼,但是我不確定在使用AudioRecorder時如何進行編碼。我寧愿不使用NDK,因為我沒有使用它的經驗,也沒有足夠的時間學習如何使用它。...:)
查看完整描述

3 回答

?
慕絲7291255

TA貢獻1859條經驗 獲得超6個贊

由于您的android代碼中的以下行,聲音被打斷了:


minBufSize += 2048;

您只是添加空字節(jié)。另外,使用CHANNEL_IN_MONO代替CHANNEL_CONFIGURATION_MONO


查看完整回答
反對 回復 2020-02-04
  • 3 回答
  • 0 關注
  • 1762 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號