Dan*_*day 3 continuous-integration ios avplayer
我有一些单元测试会导致AVPlayer加载本地文件。文件很小 (~2KB)m4a该文件是测试包中的这些测试对我来说都是本地工作。
当在 Travis 上设置我的项目时,我注意到导致AVPlayer在 Travis 上设置我的项目时,我注意到导致加载文件失败的我尝试了其他几个 CI 服务,也遇到了同样的问题。我增加了测试超时但没有运气。所有其他测试均通过。
我加载如下文件(简化):
\n\nlet path = Bundle(for: type(of: self)).path(forResource: "Pop", ofType: "m4a")!\nlet url = URL(fileURLWithPath: url)\n\nself.player.replaceCurrentItem(with: AVPlayerItem(url: url))\nRun Code Online (Sandbox Code Playgroud)\n\n我的代码观察到AVPlayer.currentItem.status。当在 CI 上运行时,观察者会以状态触发.failed。是player.error,nil并且player.currentItem.error是:
Error Domain=AVFoundationErrorDomain Code=-11800 "The operation could not be completed" UserInfo={NSUnderlyingError=0x7f86e1cd8070 {Error Domain=NSOSStatusErrorDomain Code=-101 "(null)"}, NSLocalizedFailureReason=An unknown error occurred (-101), NSLocalizedDescription=The operation could not be completed}\nRun Code Online (Sandbox Code Playgroud)\n\n有趣的是,在另一个测试中,我故意尝试加载损坏的文件(以断言它无法播放并且我的代码返回相关错误),我收到以下错误,这是预期的,并表明存在 \xe2\x80\x99s从文件系统读取没有问题:
\n\nError Domain=AVFoundationErrorDomain Code=-11829 "Cannot Open" UserInfo={NSUnderlyingError=0x7f86e1cd7ba0 {Error Domain=NSOSStatusErrorDomain Code=-12848 "(null)"}, NSLocalizedFailureReason=This media may be damaged., NSLocalizedDescription=Cannot Open}\nRun Code Online (Sandbox Code Playgroud)\n\n更新
\n\n我\xe2\x80\x99已经看到,在本地测试我偶尔(也许一天一次\xe2\x80\x99工作)会遇到类似的失败。似乎是当我重新打开 Xcode 和项目时,此后就可以工作了。也许有些东西AVFoundation需要一段时间才能初始化?我很想能够模拟AVPlayer,也许我\xe2\x80\x99会为此添加一个协议并且AVPlayerItem......
小智 5
我有完全相同的问题和相同的错误。我最初尝试了视频和音频文件,但没有成功。然后,我解决了创建没有音频的视频的问题。我怀疑这个问题是由 Travis-CI 的虚拟机没有声卡导致操作系统错过一些能够重现文件的东西引起的。
不过,我不能 100% 确定是否是缺少音频或视频导出方式解决了问题。
| 归档时间: |
|
| 查看次数: |
1623 次 |
| 最近记录: |