android将音频流传输到服务器

我想了解套接字是如何工作的,尤其是我需要一些代码示例,以便服务器端接收来自设备的mediarecorder发送的流。

非常感谢您的帮助。

我真正的最终目的是在设备上谈话,并在PC上收听,只是一个方向。

目前,我可以使用以下代码发送流:

String hostname = "192.168.1.10";
int port = 8000;
Socket socket = null;
    try {
        socket = new Socket(InetAddress.getByName(hostname), port);
    } catch (UnknownHostException e) {
        e.printStackTrace();
    } catch (IOException e) {
        e.printStackTrace();
    }

ParcelFileDescriptor pfd = ParcelFileDescriptor.fromSocket(socket);

recorder = new MediaRecorder();
recorder.setAudioSource(MediaRecorder.AudioSource.MIC);
recorder.setOutputFormat(MediaRecorder.OutputFormat.THREE_GPP);
recorder.setAudioEncoder(MediaRecorder.AudioEncoder.AMR_NB);
recorder.setOutputFile(pfd.getFileDescriptor());

    try {
        recorder.prepare();
    } catch (IllegalStateException e) {
        e.printStackTrace();
    } catch (IOException e) {
        e.printStackTrace();
    }

recorder.start();

似乎没问题,但我个人更喜欢将设备上的音频缓存并从另一个线程发送到服务器,而不是像您那样直接将录音机绑定到套接字。 因为本地缓冲将允许您优雅地处理连接中断。

想象一下,你正在记录和用户通过隧道,并失去了互联网连接 - 如果你直接流媒体,套接字将关闭,用户会恼火:-)但是,如果你在本地缓冲数据,你可以重新建立连接并继续将音频从您离开的地方发送到服务器,并希望用户甚至不必知道连接中断就发生了,因为它只是奇迹般地工作。

为了使它起作用,你必须将记录写入本地缓冲区,并且有一个单独的线程检查缓冲区中的新数据并尽快发送到服务器。

链接地址: http://www.djcxy.com/p/56839.html

上一篇: android stream audio to server

下一篇: iOS URL Scheme Length