[文章]HarmonyOS应用开发实战-媒体组件video

阅读量0
0
2
  • video。视频播放组件
    说明:需要在config.json配置,“configChanges”: [“orientation”]
除支持通用属性外,还支持如下属性:
除支持通用样式外,还支持如下样式:
类型说明:
除支持通用事件外,还支持如下事件:
除支持通用方法外,还支持如下方法:
  • 案例

  1. <span style="font-weight: normal;"><font size="4"><!--index.hml-->
  2. <div class="container">
  3.             <div class="video_div">
  4.                 <video class="video"
  5.                        id='videoId'
  6.                        src='/common/活动1.mp4'    //此处为资源路径。资源请自行准备!
  7.                        muted='false'
  8.                        autoplay='false'
  9.                        controls="true"
  10.                        onprepared='preparedCallback'
  11.                        onstart='startCallback'
  12.                        onpause='pauseCallback'
  13.                        onfinish='finishCallback'
  14.                        onerror='errorCallback'
  15.                        onseeking='seekingCallback'
  16.                        onseeked='seekedCallback'
  17.                        ontimeupdate='timeupdateCallback'
  18.                        onlongpress='change_fullscreenchange'
  19.                        onclick="change_start_pause"
  20.                        loop='true'
  21.                        starttime = '3'></video>
  22.                     </div>
  23. </div>

  24. /*index.css*/
  25. .container {
  26.     flex-direction: column;
  27.     justify-content: center;
  28.     align-items: center;
  29. }
  30. .video_div{
  31.     flex-direction: column;
  32.     align-items: center;
  33.     justify-content: center;
  34.     width: 100%;
  35.     height: 300px;
  36.     background-color: #ccc;
  37. }
  38. .video{
  39.     object-fit:fill;
  40.     width:560px;
  41.     height: 224px;
  42.     margin-top: 0;
  43.     border: 1px solid #333;
  44. }



  45. //index.js
  46. export default {
  47.     data: {
  48.         event:'',
  49.         seekingtime:'',
  50.         timeupdatetime:'',
  51.         seekedtime:'',
  52.         isStart: true,
  53.         isfullscreenchange: false,
  54.         duration: '',
  55.     },
  56.     guan(){router.push({uri:'pages/index/index' })},
  57.     huo(){router.push({uri:'pages/activity/activity'})},
  58.     bu(){router.push({uri:'pages/shop/shop'})},
  59.     preparedCallback:function(e){ this.event = '视频连接成功'; this.duration = e.duration;},
  60.     startCallback:function(){ this.event = '视频开始播放';},
  61.     pauseCallback:function(){ this.event = '视频暂停播放'; },
  62.     finishCallback:function(){ this.event = '视频播放结束';},
  63.     errorCallback:function(){ this.event = '视频播放错误';},
  64.     seekingCallback:function(e){ this.seekingtime = e.currenttime; },
  65.     timeupdateCallback:function(e){ this.timeupdatetime = e.currenttime;},
  66.     change_start_pause: function() {
  67.         if(this.isStart) {
  68.             this.$element('videoId').pause();
  69.             this.isStart = false;
  70.         } else {
  71.             this.$element('videoId').start();
  72.             this.isStart = true;
  73.         }
  74.     },
  75.     change_fullscreenchange: function() {//全屏
  76.         if(!this.isfullscreenchange) {
  77.             this.$element('videoId').requestFullscreen({ screenOrientation : 'default' });
  78.             this.isfullscreenchange = true;
  79.         } else {
  80.             this.$element('videoId').exitFullscreen();
  81.             this.isfullscreenchange = false;
  82.         }
  83.     }
  84. }</font></span>
复制代码
附件:

回帖

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容图片侵权或者其他问题,请联系本站作侵删。 侵权投诉
链接复制成功,分享给好友