我正在尝试使用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
}
如您所见,我已经尝试将缓冲区字节转换为数据,但是无法继续进行下去。如何使用这些数据制作可播放的视频?
我尝试将数据保存到应用程序目录中,但是没有以可播放的格式保存。