域 = AVFoundationErrorDomain ,代码 = -11828

domain = AVFoundationErrorDomain , code = -11828

我正在使用来自 CloudFront 的流 url。

样本URL: https://d14nt81hc5bide.cloudfront.net/qyYj1PcUkYg2ALDfzAdhZAmb

在 Android 上,它工作正常,但在 iOS 上它说: 域 = AVFoundationErrorDomain ,代码 = -11828

来自苹果文档的错误代码 11828 是 AVErrorFileFormatNotRecognized。 无法打开媒体,因为它不是可识别的格式。

有人可以建议如何修复此错误吗?

如果响应的 URL 或 header 不包含有关媒体容器格式的信息(mp4mov,AVFoundation 可能会很挑剔。 ..),这里就是这种情况(URL 中没有 'file extension',并且响应 header 中没有内容类型)。
其他媒体库和播放器似乎愿意只开始加载,然后通过检查传入数据来猜测格式,这可能就是它们在这种情况下起作用的原因。

不幸的是,至少据我所知,没有(可靠的)方法可以通过编程方式告诉 AVFoundation 期望的格式并继续进行。

正如您所说,此错误的产生是因为 AVFoundation 无法识别您的媒体格式。

上传媒体文件到服务器时尝试declare your mime type

更多关于 mime 类型的信息 here

more info: AWS streaming media content tutorial

我别无选择,只能让我的 CloudFront URL 附加 .mp3。 然后它适用于 ios.