欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

uniapp video播放視頻 懸浮在屏幕無法滑動

 更新時間:2024年08月08日 11:01:56   作者:影子信息  
在uniapp中,需要使用<video></video>標(biāo)簽進(jìn)行播放動態(tài)src的視頻,這里只是簡單的在App端播放視頻,且動態(tài)賦值src,如果還有其它復(fù)雜的布局內(nèi)部嵌套video標(biāo)簽也是不成功的,例如:<swiper>、<scroll-view>等,感興趣的朋友跟隨小編一起看看吧

背景:

在uniapp中,需要使用<video></video>標(biāo)簽進(jìn)行播放動態(tài)src的視頻。

1.在開發(fā)的時候,運(yùn)行到瀏覽器,vedio標(biāo)簽正常;(使用HbuildX運(yùn)行,運(yùn)行 -->運(yùn)行到瀏覽器)。

2.但是在打包成原生App,安裝.apk后綴的應(yīng)用程序,vedio播放視頻就不正常。(使用HbuildX打包,發(fā)行 --> 原生App-云打包)。

問題截圖:

問題描述:在App上,視頻停在屏幕上,在頁面中不會跟隨頁面滾動而滾動。

問題分析:

1.研究<video>標(biāo)簽,是否某個屬性設(shè)置錯誤;

2.給對應(yīng)的video標(biāo)簽添加上對應(yīng)的css樣式,是否是樣式問題;

3.查看uniapp框架。因?yàn)樵诠雀铻g覽器播放視頻都是正常的,到手機(jī)上不正常,查看uniapp框架相關(guān)。

4.搜索相關(guān)博客,解決問題。

一、video標(biāo)簽

官網(wǎng):點(diǎn)擊跳轉(zhuǎn)官網(wǎng)

1.基本用法屬性:

  • id: 給視頻標(biāo)簽一個唯一的 ID。
  • class: 用于樣式控制。
  • src: 視頻的 URL,可以是本地路徑或者網(wǎng)絡(luò)地址。
  • controls: 顯示默認(rèn)的視頻控件。
  • autoplay: 自動播放視頻。
  • loop: 循環(huán)播放視頻。
  • muted: 靜音播放視頻

 2.事件監(jiān)聽

  • @start: 監(jiān)聽視頻播放事件。
  • @pause: 監(jiān)聽視頻暫停事件。
  • @finish: 監(jiān)聽視頻播放結(jié)束事件。

備注:瀏覽uniapp框架下的video標(biāo)簽,發(fā)現(xiàn)沒有屬性能夠控制其保持在電子屏幕不動。、

進(jìn)一步說明這個是手機(jī)端才有的Bug 

二、video標(biāo)簽的css樣式

在某些情況下,視頻可能會被固定在屏幕上,而不是隨著頁面滾動。這可能是由于視頻元素的層級或樣式問題??梢試L試以下方法:

確保視頻的樣式設(shè)置正確,使其能夠隨著頁面滾動。

<template>
  <view class="container">
    <video
      id="myVideo"
      class="video"
      src="/static/videos/your-video.mp4"
      controls
      autoplay
      loop
      muted
      preload="auto"
      x5-video-player-type="h5"
      x5-video-player-fullscreen="true"
      x5-playsinline
      playsinline
      webkit-playsinline
    ></video>
  </view>
</template>
<style>
.container {
  width: 100%;
  height: 300px;
  background-color: #f0f0f0;
  overflow: hidden; /* 確保容器能夠滾動 */
}
.video {
  width: 100%;
  height: 100%;
  object-fit: cover;
  position: relative; /* 確保視頻能夠隨頁面滾動 */
}
</style>

在某些設(shè)備上,硬件加速或渲染層可能導(dǎo)致視頻渲染問題。可以嘗試禁用硬件加速或調(diào)整渲染層設(shè)置: 

<template>
  <view class="container">
    <video
      id="myVideo"
      class="video"
      src="/static/videos/your-video.mp4"
      controls
      autoplay
      loop
      muted
      preload="auto"
      x5-video-player-type="h5"
      x5-video-player-fullscreen="true"
      x5-playsinline
      playsinline
      webkit-playsinline
    ></video>
  </view>
</template>
<style>
.container {
  width: 100%;
  height: 300px;
  background-color: #f0f0f0;
  overflow: hidden; /* 確保容器能夠滾動 */
}
.video {
  width: 100%;
  height: 100%;
  object-fit: cover;
  position: relative; /* 確保視頻能夠隨頁面滾動 */
  will-change: transform; /* 提示瀏覽器優(yōu)化渲染 */
  transform: translateZ(0); /* 強(qiáng)制開啟 GPU 加速 */
}
</style>

備注:

我使用了對應(yīng)的css樣式,但是問題沒有解決。 

三、uniapp框架下的video標(biāo)簽

查看了uniapp框架下的video標(biāo)簽,但是沒有對應(yīng)的屬性能夠解決問題。

四、vedio原生組件層級高于前端組件

意思是: 

1.Video是屬于原生組件的,層級是最高的,無法被其他內(nèi)容所覆蓋,當(dāng)然也不會跟著div的overflow-y:scroll進(jìn)行滑動,只會一直浮在表層,擋住其他元素。

2.部分組件如map、video、textarea、canvas通過原生控件實(shí)現(xiàn),原生組件層級高于前端組件(類似flash層級高于div)。

為了能正常覆蓋原生組件,設(shè)計了cover-view。

uni官網(wǎng)的官方文檔:點(diǎn)擊跳轉(zhuǎn)官網(wǎng)

cover-view使用示例:

//cover-view標(biāo)簽得在<video>標(biāo)簽內(nèi)部
<template>
	<view>
		<video style="position: relative;" src="https://haokan.baidu.com/v?pd=wisenatural&vid=18309277609015821003">
<cover-view style="width: 100px;height: 100px;background-color: 
      #fff;position:absolute;left: 0;">
</cover-view>
		</video>
	</view>
</template>
<script>
	export default {
		data() {
			return {
			}
		},
		methods: {
		}
	}
</script>
<style>
</style>

cover-view使用的問題:

uni-app 原生APP 模式下 video 層級過高,頁面滾動后會覆蓋自定義頂部 tabbar和自定義底部菜單,很多人都只是說 cover-view 覆蓋,但是cover-view必須在video里面才是有效的,cover-view 在原生app里面無法嵌套內(nèi)容 。

vue頁面層級覆蓋解決方案: 點(diǎn)擊跳轉(zhuǎn)官網(wǎng)

三種方式對比: 

1.cover-view

更適合在視頻上邊添加某些組件,比如播放按鈕或者什么功能。

cover-view或者cover-image,放在video標(biāo)簽內(nèi)使用,子絕父相

2.plus.nativeObj.view

這個是安卓的原生寫法,看了很多資料,發(fā)現(xiàn)是能解決相當(dāng)多種類的問題,但是畢竟原生語法會難一些,在時間不夠的情況下很難去學(xué)好怎么使用原生語言滿足當(dāng)前的需求,但如果時間充足且有條件的基礎(chǔ)下可以采用這個方法 。

plus.nativeObj.View()  繪制原生畫布,有點(diǎn)擊事件。不屬于dom,可以覆蓋webview和各種原生控件

plus.nativeObj.view官方文檔。因?yàn)槠M件,較復(fù)雜,可自行選擇學(xué)習(xí)

Html5產(chǎn)業(yè)聯(lián)盟。關(guān)于video標(biāo)簽的相關(guān)文檔

3.subNVue

subNVue是原生渲染的nvue子窗體,把一個nvue頁面以半屏的方式覆蓋在vue頁面上

subnvue 創(chuàng)建原生子窗體,放在當(dāng)前頁面下,放好位置即可。

首先創(chuàng)建nvue文件。最好放入同級。

在 pages.json 中,新增了 subNVues 節(jié)點(diǎn),配置 subNVue 子窗體的相關(guān)屬性。

在 pages.json 中增加完配置,也寫好了 subNVue 子窗體,接下來就是在 vue/nvue 頁面中使用了。

uni-app subNVue 原生子窗體開發(fā)指南

參考博客:參考博客 

五、video標(biāo)簽一個解決辦法 

最后在網(wǎng)上參考了其他人的一份解決方案,剛好解決此問題。

封裝一個組件,利用iframe實(shí)現(xiàn):

//MyVideo組件
//自行封裝一個組件,利用iframe實(shí)現(xiàn)
<template>
	<iframe :onload="onloadCode" style="width:100%;height:100%;border:1px solid #fff;background: #000;"></iframe>
</template>
<script>
	export default {
		props: {
			src: {}
		},
		data() {
			return {
				onloadCode: ''
			}
		},
		created() {
			this.onloadCode =
				`this.contentWindow.document.body.innerHTML = '<video style="width: 100%;height: 100%" controls="controls" src="${this.src}"></video>';`
		},
	}
</script>
<style lang="scss">
</style>

使用方式:

在其他頁面調(diào)用注冊此封裝的組件,并傳遞視頻資源src 

//其它頁面調(diào)用
<MyVideo :src="item.img" v-for="(item, index) in vediosData" :key="index" class="video"></MyVideo>

 寫在最后,我們這里只是簡單的在App端播放視頻,且動態(tài)賦值src。如果還有其它復(fù)雜的布局內(nèi)部嵌套video標(biāo)簽也是不成功的,例如:<swiper>、<scroll-view>等

到此這篇關(guān)于uniapp video播放視頻 懸浮在屏幕無法滑動的文章就介紹到這了,更多相關(guān)uniapp video播放視頻內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • js實(shí)現(xiàn)上傳圖片預(yù)覽方法

    js實(shí)現(xiàn)上傳圖片預(yù)覽方法

    這篇文章主要為大家詳細(xì)介紹了js實(shí)現(xiàn)上傳照片預(yù)覽的方法,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2016-10-10
  • 使用js畫圖之圓、弧、扇形

    使用js畫圖之圓、弧、扇形

    這篇文章主要介紹了使用js繪制幾何圖形教程,本文主要是教大家繪制圓、弧、扇形,需要的朋友可以參考下
    2015-01-01
  • p5.js臨摹旋轉(zhuǎn)愛心

    p5.js臨摹旋轉(zhuǎn)愛心

    這篇文章主要為大家詳細(xì)介紹了p5.js臨摹旋轉(zhuǎn)愛心,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-10-10
  • JavaScript的詞法結(jié)構(gòu)精華篇

    JavaScript的詞法結(jié)構(gòu)精華篇

    今天小編就為大家分享一篇關(guān)于JavaScript的詞法結(jié)構(gòu)精華篇,小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧
    2018-10-10
  • JS解決iframe之間通信和自適應(yīng)高度的問題

    JS解決iframe之間通信和自適應(yīng)高度的問題

    關(guān)于iframe之間的通信問題與自適應(yīng)高度問題網(wǎng)上有很多,那么這篇文章小編也和大家一起來談?wù)刬frame之間通信問題及iframe自適應(yīng)高度問題,有需要的可以參考借鑒。
    2016-08-08
  • JS中事件冒泡和事件捕獲介紹

    JS中事件冒泡和事件捕獲介紹

    這篇文章主要為大家詳細(xì)介紹了JS中事件冒泡和事件捕獲的相關(guān)資料,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2016-12-12
  • 小程序?qū)崿F(xiàn)訂單評價和商家評價

    小程序?qū)崿F(xiàn)訂單評價和商家評價

    這篇文章主要為大家詳細(xì)介紹了小程序?qū)崿F(xiàn)訂單評價和商家評價功能,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-04-04
  • dwz 如何去掉ajaxloading具體代碼

    dwz 如何去掉ajaxloading具體代碼

    最近使用dwz來做項目,有時候在ajax的時候并不想使用dwz的loading,不知道有什么方法可以去掉嗎,下面為大家詳細(xì)介紹下具體的去掉方法
    2013-05-05
  • uniapp自定義驗(yàn)證碼輸入框并隱藏光標(biāo)

    uniapp自定義驗(yàn)證碼輸入框并隱藏光標(biāo)

    這篇文章主要介紹了uniapp自定義驗(yàn)證碼輸入框隱藏光標(biāo),效果是點(diǎn)擊輸入框喚起鍵盤,藍(lán)框就相當(dāng)于input的光標(biāo),驗(yàn)證碼輸入錯誤或者不符合格式要求會將字體以及邊框改成紅色提示持續(xù)1s然后清空數(shù)據(jù),恢復(fù)原邊框樣式,需要的朋友可以參考下
    2023-02-02
  • Bootstrap常用組件學(xué)習(xí)(整理)

    Bootstrap常用組件學(xué)習(xí)(整理)

    這篇文章是小編日常收集整理的有關(guān)bootstrap?常用組件包括Bootstrap?面板(Panels),Bootstrap?多媒體對象(Media?Object)知識,非常不錯,需要的朋友參考下吧
    2017-03-03

最新評論