使用uniapp打包h5后选择或拍摄视频时报错:API chooseVideo
is not yet implemen
在dev模式下,通过谷歌浏览器是能正常弹出选择对话框,但是发行后就不行,尝试升级最新的Hbuild,问题依然存在,
原因就是提示的:API chooseVideo is not yet implemen
对应的API没有实现。
可以判断一下平台,针对H5场景使用:
<input type="file" accept="video/*" capture="camcorder" onchange="change()">
capture:
user 前置
environment 后置
camera 相机
camcorder 摄像机
microphone 录音
filesystem
太古董的手机,也不兼容,自行评估是否可以放弃古董用户。
uni-app
是一个使用 Vue.js 开发所有前端应用的框架,它允许开发者编写一次代码,发布到多个平台,包括 iOS、Android、H5、以及各种小程序等。然而,由于不同平台的能力差异,一些原生API可能在某些平台上是无法直接使用的。
针对你的问题,chooseVideo
是用于选择或拍摄视频的API,但在H5平台上,由于浏览器安全限制和HTML5标准本身的能力限制,这个API可能无法直接实现。
要解决这个问题,你可以考虑以下几种方法:
使用H5的原生<input type="file">
:
虽然 chooseVideo
可能不支持H5,但你可以使用原生的HTML <input type="file" accept="video/*">
来让用户选择视频文件。然后你可以使用JavaScript的 FileReader
API 来读取和处理这些文件。
示例代码:
<input type="file" accept="video/*" capture="camcorder" @change="handleVideoChange">
<script>
export default {
methods: {
handleVideoChange(e) {
let file = e.target.files[0];
if (file) {
let reader = new FileReader();
reader.onload = (e) => {
// 你可以在这里处理视频文件,例如上传到服务器
console.log(e.target.result);
};
reader.readAsDataURL(file);
}
}
}
}
</script>
条件编译:
在uni-app中,你可以使用条件编译来根据平台选择不同的代码。对于H5平台,你可以使用上述的原生HTML5方法来处理视频选择;对于其他原生平台(如iOS、Android、小程序等),则可以继续使用 chooseVideo
。
示例代码(使用uni-app的条件编译):
<template>
<view v-if="platform !== 'h5'">
<!-- 原生平台的代码,使用chooseVideo -->
</view>
<view v-else>
<!-- H5平台的代码,使用<input type="file"> -->
<input type="file" accept="video/*" capture="camcorder" @change="handleVideoChange">
</view>
</template>
<script>
// 在这里检查平台
export default {
data() {
return {
platform: uni.getSystemInfoSync().platform // 获取平台信息
};
},
// ... 省略其他方法和代码
}
</script>
capture="camcorder"
属性来直接录制视频。希望这些方法可以帮助你解决问题。如果你有其他关于uni-app或前端开发的问题,也欢迎随时提问。
我想用camera2 API录制视频时捕捉图像。 null camera2 API是新的。所以谷歌上没有更多的例子。 有人对此有什么想法吗?比如在Android中如何在录音时捕捉照片?
我必须做一个按钮,将提供从画廊或从相机选择图像。 结果是有效的。如果我从图库中选择,图像查看器将查看它,如果我选择从相机拍照,它也有效。问题是,在我的show FileChooser()方法中,我所有的意图都在同时运行,所以当我从图库中选择时,相机仍然运行。我选择相机,图库也在打开。我认为我应该在切换案例模式下实现我的代码,但我不明白如何做到这一点。请帮助解决我的初学者问题。
我想用montemagno库制作一个视频: 这段代码在Android上运行得非常好。在iOS上,它会在生产过程中崩溃。我无法调试此代码,因为它返回。模拟器没有摄像头,因此无法继续。 我试着部署到一个真正的iPhone,但协同设计总是失败,这些配置文件是世界上最糟糕的。 我知道它至少达到了显示“无相机”的程度,所以初始化功能似乎可以工作。因此,我认为问题出在TakeVideoAsync()上。 它甚
我想把我的混合应用程序的一些截图itunes自动连接。我正在运行Ubuntu 14.04. chromeDrive2.15.322448 使用Selenium和Xvfb自动截图很容易。但是要得到视网膜截图并不容易。 我用更高的dpi启动了我的Xvfb: 当我检查显示信息时,一切似乎都是正确的: 然后我像这样启动我的chromedriver 在完成了一些其他无聊的代码后,我截图: 这不工作。屏幕截图
uniapp 页面获取 webview 提交的参数,且 webview 的 html 是使用 uniapp 打包的,点击 webview 页面提交对应的 id。 导入了 uni-webview-js 使用可以成功接收到数据,但是不知道如何将数据返回。
我需要使用Sikuli的自动化,但我无法采取截图。问题是,当我点击“截屏”或“创建区域”时,IDE会被隐藏,但选择区域选项不会出现....