uni-app ios app端 chooseVideo 选择视频时视频画面黑屏但有声音

uni-app ios app端 chooseVideo 选择视频时视频画面黑屏但有声音

5 回复

未复现问题。仅这个设备出现问题吗?其他设备是否正常?

更多关于uni-app ios app端 chooseVideo 选择视频时视频画面黑屏但有声音的实战教程也可以访问 https://www.itying.com/category-93-b0.html


试了几个ios设备,都会这样

回复 熊先生: 就这个视频有问题?换其他是否正常?提供下必现机型具体信息

回复 DCloud_UNI_Anne: 嗯发现这个视频有问题,其他大部分正常,我这边iphone12 必现

在使用 UniApp 的 chooseVideo API 选择视频时,如果视频画面黑屏但有声音,可能是由于以下原因导致的。你可以按照以下步骤进行排查和解决:


1. 检查视频格式和编码

iOS 设备对视频格式和编码有严格要求。如果视频使用了不支持的编码格式,可能会导致画面无法正常显示。

  • 支持的格式:iOS 设备通常支持 H.264 编码的 MP4 文件。
  • 排查方法:使用工具(如 ffmpegMediaInfo)检查视频的编码格式和容器格式,确保它们符合 iOS 的要求。
  • 解决方法:如果视频格式不支持,可以使用工具(如 ffmpeg)将视频转换为 H.264 编码的 MP4 文件。
ffmpeg -i input.mp4 -vcodec libx264 -acodec aac output.mp4

2. 检查 UniApp 版本

确保你使用的 UniApp 版本是最新的,旧版本可能存在兼容性问题。

  • 解决方法:升级 UniApp 到最新版本,重新编译并测试。
npm update @dcloudio/uni-app

3. 检查 iOS 系统版本

某些 iOS 系统版本可能存在兼容性问题,导致视频无法正常播放。

  • 解决方法:确保设备和测试环境运行的是较新的 iOS 版本。

4. 检查代码实现

确保 chooseVideo API 的使用方式正确,并且没有遗漏参数。

uni.chooseVideo({
  sourceType: ['album', 'camera'], // 选择视频来源
  maxDuration: 60, // 最大时长
  camera: 'back', // 默认使用后置摄像头
  success(res) {
    console.log('视频路径:', res.tempFilePath);
    // 播放视频
    uni.playVideo({
      src: res.tempFilePath,
      success: () => {
        console.log('视频播放成功');
      },
      fail: (err) => {
        console.log('视频播放失败:', err);
      }
    });
  },
  fail(err) {
    console.log('选择视频失败:', err);
  }
});

5. 检查视频播放器

如果使用 uni.playVideo 播放视频时出现黑屏,可能是播放器本身的问题。

  • 解决方法:尝试使用原生 <video> 标签播放视频,检查是否正常。
<video :src="videoSrc" controls></video>

6. 检查权限

确保应用已获取访问相册和摄像头的权限。

  • 解决方法:在 manifest.json 中配置权限,并在 iOS 设备上手动开启权限。
{
  "app-plus": {
    "distribute": {
      "ios": {
        "permissions": {
          "photoLibrary": {
            "description": "需要访问相册以选择视频"
          },
          "camera": {
            "description": "需要访问摄像头以拍摄视频"
          }
        }
      }
    }
  }
}

7. 调试和日志

开启调试模式,查看是否有错误日志输出。

  • 解决方法:在 manifest.json 中开启调试模式。
{
  "app-plus": {
    "debug": true
  }
}
回到顶部