发帖
2 0 0

iOS webview本地视频无法播放的问题

qq243559086
高级会员

14

主题

0

回帖

577

积分

高级会员

积分
577
爱星物联IoT云平台 1150 2 2024-10-10 16:33:32
爱星物联app混合开发遇到过一个问题,在使用wkwebview时,把app本地视频作为H5 页面的背景自动播放,刚开始没问题,时间长了,出现一个很严重的问题,本地视频无法播放了。想了很多办法,把app删除重装,清除app的缓存,各种操作都无法恢复,最后无奈重启手机才恢复。不知道各位有没有遇到过这样的问题,后面发现切换系统语言也能恢复。没办法了,测试在无法播放本地视频的情况下,把远程视频作为H5 页面的背景自动播放,完全没问题,不受影响。所以,我的解决方案就是在app本地开一个http文件服务,把app本地视频挂在本地服务上,wkwebview可通过http地址访问。方案源码如下:
  1. // 用到的第三方库:Criollo
  2. // 启动服务
  3. static NSString *const kWWWMount = @"/self";
  4. static UInt16 localServerPort = 35662;

  5.             CRServer *localServer = [CRHTTPServer new];
  6.             [localServer mount:kWWWMount directoryAtPath:[NSBundle.mainBundle pathForResource:@"www" ofType:nil] options:0];
  7.             [localServer startListening:NULL portNumber:localServerPort];
  8.             [NSNotificationCenter.defaultCenter addObserver:localServer selector:@selector(stopListening) name:UIApplicationWillTerminateNotification object:nil];


  9. // 获取挂载的根目录url
  10. + (NSString *)localServerWWWUrl
  11. {
  12.     if (0 == localServerPort) {
  13.         return nil;
  14.     }
  15.     return [NSString stringWithFormat:@"http://localhost:%d%@/", localServerPort, kWWWMount];
  16. }
复制代码
经过长时间测试,此方案可以避免上面的出现的问题,各位若是有更好的解决方案,还请不吝赐教。
──── 0人觉得很赞 ────

使用道具 举报

2024-10-12 08:09:33

回帖奖励 +2 金钱

怎么感觉有点奇怪
2024-10-14 11:14:41
您需要登录后才可以回帖 立即登录
高级模式
返回