马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?立即注册
x
1.ios上autoplay必要静音,在播放后再打开声音
- <vue3videoPlay v-if="!isComponent" v-bind="options" :playsinline="playsinline"></vue3videoPlay>
复制代码- let playsinline = computed(() => {
- if (props.isComponent) {
- return
- }
-
- options.muted = false; // 播放之后关闭静音
- return isIos();
- })
复制代码- function isIos() {
- let u = navigator.userAgent;
- let isAndroid = u.indexOf("Android") > -1 || u.indexOf("Adr") > -1; //android终端
- let isIOS = !!u.match(/\(i[^;]+;( U;)? CPU.+Mac OS X/); //
- if (isIOS) {
- return false;
- } else {
- return true;
- }
- }
复制代码 2.必要再初始化之后,对于video举行load.由于项目发急,直接修改组件源码。
找到init函数,修改
- const init = (): void => {
-
- if (state.dVideo.canPlayType(props.type) || state.dVideo.canPlayType('application/vnd.apple.mpegurl')) {
- // state.muted = props.autoPlay
- // if(props.autoPlay) {
- // playHandle()
- // }
- // 修改处
- state.dVideo.load();
-
- }
- // // 使用hls解码
- else if (Hls2.isSupported()) {
- Hls.detachMedia(); //解除绑定
- Hls.attachMedia(state.dVideo);
- Hls.on(Hls2.Events.MEDIA_ATTACHED, () => {
- Hls.loadSource(props.src);
- // 加载可用质量级别
- Hls.on('hlsManifestParsed', (ev, data) => {
- console.log(data)
- state.currentLevel = data.level
- state.qualityLevels = data.levels || []
- // state.dVideo.load();
- });
- })
- Hls.on('hlsLevelSwitching', (ev, data) => {
- console.log(data)
- // state.qualityLevels = Hls.levels || []
- console.log('LEVEL_SWITCHING')
- // state.dVideo.load();
- });
- Hls.on('hlsLevelSwitched', (ev, data) => {
- state.currentLevel = data.level
- // state.qualityLevels = Hls.levels || []
- console.log('LEVEL_SWITCHED')
- // state.dVideo.load();
- });
- }
- }
复制代码 3.当ios版本低于17的时候,必要对屏幕举行点击,将vue3videoPlay组件放在用户点击的地方点击一下
4.当ios版本低于13的时候,组件内的
- // 把颜色格式化为rgb格式
- // const hexToRgbaColor = hexToRgba(state.color); // 低版本 ios 13 及以下 不支持
复制代码 改成
- const hexToRgbaColor = state.color;
复制代码 临时办理,为什么出现这个题目,还不清楚,希望有大神可以解答下。
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。 |