将在inputStream的缓冲区中接收的视频转换为数据/可播放的视频

时间:2019-07-03 07:34:41

标签: ios swift iostream bonjour

我正在尝试使用bonjour共享视频,数据很容易发送,但是在接收端,我很难将接收到的数据转换为可播放的视频。

这就是我将视频转换为数据并写入输出流的方式。

if let path = Bundle.main.path(forResource: "testVid", ofType: "mp4")  {
        print("path & url created")
        if let myData = try? Data(contentsOf: URL(fileURLWithPath: path)) {
            let bytesWritten = outputStream?.write(data: myData)
            print("bytesWritten: \(String(describing: bytesWritten))")
            print("write sucessful")
        }
    }

这里我正在接收数据并从输入流中读取。

func stream(_ aStream: Stream, handle eventCode: Stream.Event) {
        case Stream.Event.hasBytesAvailable:
        print("HasBytesAvaible")
        var buffer = [UInt8](repeating: 0, count: 5)
        var myData = Data()
        if (aStream == inputStream){
             if let inputStream = inputStream {
                 while (inputStream.hasBytesAvailable){
                    let len = inputStream.read(&buffer, maxLength: buffer.count)
                     if(len > 0){
                       let d = Data(bytes: &buffer, count: buffer.count)
                       myData.append(d)
            }//end if len > 0
        }//end whileLoop
    }
}
        break
}

如您所见,我已经尝试将缓冲区字节转换为数据,但是无法继续进行下去。如何使用这些数据制作可播放的视频?

我尝试将数据保存到应用程序目录中,但是没有以可播放的格式保存。

0 个答案:

没有答案