使用UIImagePickerController导出通用兼容的视频

时间:2018-03-14 05:35:20

标签: android swift video h.264

我正在使用UIImagePickerController在短信应用中挑选视频。然后,这些视频可以在iOS应用,Android应用或Web应用上播放。我正在使用下面的代码。

let picker = UIImagePickerController()
picker.delegate = self
picker.mediaTypes = ["public.image", "public.movie"]
picker.videoQuality = UIImagePickerControllerQualityType.typeMedium 
if #available(iOS 11.0, *) {
    picker.videoExportPreset = AVVideoProfileLevelH264Baseline30
}

此工作正常,视频消息在iOS和网络上发送和播放正常但在Android VideoView中播放时,我收到“无法播放此视频”消息。该视频肯定会在正确的位置保存到Android设备,因为我可以使用Android设备监视器将其从那里拉出来,并且看到它肯定是h264,但有一些关于Android VideoView不喜欢的文件。

在Android设备上播放iOS视频时,我缺少什么?我真的不想在服务器上对它们进行转码,因为这会大大减慢邮件传递时间。

感谢您的帮助

1 个答案:

答案 0 :(得分:-1)

要回答我自己的问题以防其他人需要它.. iOS文件实际上是.MOV,即使它是用h264编码并保存为.mp4。

我使用这篇文章中的函数将.MOV转换为mp4并解决了问题。

Swift - How to record video in MP4 format with UIImagePickerController?