相关疑难解决方法(0)

是否可以在没有文件扩展名的情况下使AVURLAsset工作?

我正在尝试为视频文件创建缩略图:

- (UIImage*) thumbnailForVideoAtURL: (NSURL*) videoURL
{
    AVURLAsset *asset = [[AVURLAsset alloc] initWithURL:videoURL options:nil];
    AVAssetImageGenerator *generator = [[AVAssetImageGenerator alloc] initWithAsset:asset];
    CGImageRef imageHandle = [generator copyCGImageAtTime:kCMTimeZero actualTime:NULL error:NULL];
    if (imageHandle) {
        UIImage *frameImage = [UIImage imageWithCGImage:imageHandle];
        CFRelease(imageHandle);
        return frameImage;
    } else {
        return nil;
    }
}
Run Code Online (Sandbox Code Playgroud)

问题在于视频文件存储在内容可寻址的商店中,没有扩展名.AVURLAsset当资产被创建时,这似乎就会消失,但在读取帧图像时,我得到以下错误:

Error Domain=AVFoundationErrorDomain Code=-11828 "Cannot Open" UserInfo=0x167170 {NSLocalizedFailureReason=This media format is not supported., NSUnderlyingError=0x163a00 "The operation couldn’t be completed. (OSStatus error -12847.)", NSLocalizedDescription=Cannot Open}
Run Code Online (Sandbox Code Playgroud)

这是在某处记录或提到的吗?我无法相信我真的被迫通过文件名传递文件格式信息.初始化程序的options参数AVURLAsset看起来是提供文件类型的好地方,但根据文档似乎没有任何支持.

PS.我已经测试了代码,具有正确扩展名的相同文件会产生缩略图.

avfoundation avurlasset

14
推荐指数
3
解决办法
9404
查看次数

iOS 10 AVPlayer 不会从没有扩展名且视频/mp4 作为内容类型的 URL 流式传输视频

目前,我们使用标准的AVPlayerviaAVPlayerViewController来播放视频。我们正在以https://ourdomain/media/mediaid?jwt=authTokenHere格式从 url 流式传输视频。如您所见,该 url 没有扩展名;但是,在有效负载上设置了标头以指示响应是视频。

HTTP 响应头

虽然链接导致视频在桌面 Safari 和 Chrome 中播放良好,但它不会AVPlayer在我们的应用程序中通过 iOS 播放。是否有一些特定的格式AVPlayer

video ios mime-types avplayer avplayerviewcontroller

6
推荐指数
1
解决办法
3251
查看次数