我创建了一个小的演示应用程序,应用程序使用 UIImagePickerController 从 iPhone 访问图像和视频。当我选择任何图像或视频时,应用程序会在文档目录中创建它的副本 (图像或视频)。使用 gcdweb server 在 iPhone 上创建 web 服务器,并需要公开所选图像或视频。但它不起作用。
这是示例代码,不确定我可能错在哪里。
类视图控制器: UIViewController 、 uiimagepickercontroller 委托、 uinavigioncontroller 委托 {
@ IBOutlet 弱 var btnselect: UIButton!
让 video opicker = UIImagePickerController ()
@ IBAction func btnSelect (_ sender: Any) {
如果 UIImagePickerController。isSourceTypeAvailable (photoLibrary) {
让 myPickerController = UIImagePickerController ()
MyPickerController 委派 = 自动;
源类型 =。光图书馆
MyPickerController。allowsEditing = false
自我呈现 (myPickerController,动画: true,完成: nil)
}
}
Func imagePickerControllerDidCancel (_ 机械手: UIImagePickerController) {
自我。解雇 (动画: 真实,完成: 无)
}
Func imagePickerController (_ 机械手: UIImagePickerController,didFinishPickingMediaWithInfo 信息: [UIImagePickerController.入 InfoKey: 任何]) {
//1.将视频保存到文档目录
让 video ourl = info [UIImagePickerController.InfoKey.mediaURL] as!NSURL
让视频数据 = NSData (内容: 视频作为 URL)
让 path 试试!FileManager.default.url (用于: filemanager.search 路径目录.doc umentDirectory,位于: FileManager.search 路径域掩码.userDomainMask,
让 newPath = path.appendingpath 组件 ("/mytestvideo.mp4")
做 {
尝试视频数据?。写入 (到: newPath)
} 抓 {
打印 (错误)
}
//2.使用 gcdweb server 在 iPhone 上创建 web 服务器
让 webServer = GCDWebServer ()
(ForMethod: “GET”,request: GCDWebServerRequest.self,process block: {request in
返回 GCDWebServerDataResponse (新路径)
})
Web 服务器。启动 (withPort: 8080,bonjourName: “GCD Web 服务器”)
}
}
我需要这个 GCD Web 服务器托管/访问这个选定的 (图像或视频)。
假设它可能是按照错误的路径
让 newPath = path.appendingpath 组件 ("/mytestvideo.mp4")
生产。./文档/mytestvideo.mp4
尝试从附加路径组件中删除反斜杠。
让 newPath = path.appendingpath 组件 ("mytestvideo.mp4")
此外,问题可能与 “文件://” 前缀相关的可能性很小。如果以前的建议无助于尝试删除前缀。