如何使用套接字将PCM原始音频数据发送到服务器并获取PCM原始音频数据并在iOS中播放音频文件?

时间:2016-12-16 07:59:23

标签: objective-c sockets voip audio-streaming rtp

我有一个应用程序要求,即在iPhone应用程序中实现VOIP功能。

使用套接字的连接服务器有点成功。

我面临一些问题。

我已经实现了以下录音代码。

-(void)open {
    NSError *error;

    m_capture = [[AVCaptureSession alloc]init];
    AVCaptureDevice *audioDev = [AVCaptureDevice defaultDeviceWithMediaType:AVMediaTypeAudio];
    if (audioDev == nil)
    {
        printf("Couldn't create audio capture device");
        return ;
    }
    //m_capture.sessionPreset = AVCaptureSessionPresetLow;

    // create mic device
    AVCaptureDeviceInput *audioIn = [AVCaptureDeviceInput deviceInputWithDevice:audioDev error:&error];
    if (error != nil)
    {
        printf("Couldn't create audio input");
        return ;
    }

    // add mic device in capture object
    if ([m_capture canAddInput:audioIn] == NO)
    {
        printf("Couldn't add audio input");
        return ;
    }

    [m_capture addInput:audioIn];
    // export audio data
    AVCaptureAudioDataOutput *audioOutput = [[AVCaptureAudioDataOutput alloc] init];
    [audioOutput setSampleBufferDelegate:self queue:dispatch_get_main_queue()];

    if ([m_capture canAddOutput:audioOutput] == NO)
    {
        printf("Couldn't add audio output");
        return ;
    }

    [m_capture addOutput:audioOutput];
    [audioOutput connectionWithMediaType:AVMediaTypeAudio];
    [m_capture startRunning];
    return ;
}

- (void)captureOutput:(AVCaptureOutput *)captureOutput didOutputSampleBuffer:(CMSampleBufferRef)sampleBuffer fromConnection:(AVCaptureConnection *)connection{


}

以上代码具有captureOutput功能。此功能是连续捕获音频。

我不知道如何将PCM原始音频数据发送到服务器并获取PCM原始音频数据并在 iPhone 中播放音频。

完成服务器编码。服务器取回我的PCM原始音频数据。

0 个答案:

没有答案