Я пытаюсь поделиться видео с помощью 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
}
Как вы можете видеть, я пытался преобразовать байты буфера в данные, но не смог продвинуться дальше. Как я могу использовать эти данные для превращения в воспроизводимое видео?
Я пытался сохранить данные в каталоге приложения, но они не сохраняются в воспроизводимом формате.