Конвертировать видео, полученное в буфере inputStream, в видео / воспроизводимое видео - PullRequest
0 голосов
/ 03 июля 2019

Я пытаюсь поделиться видео с помощью 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
}

Как вы можете видеть, я пытался преобразовать байты буфера в данные, но не смог продвинуться дальше. Как я могу использовать эти данные для превращения в воспроизводимое видео?

Я пытался сохранить данные в каталоге приложения, но они не сохраняются в воспроизводимом формате.

...