HarmonyOS Next鸿蒙开发:视频播放

81 阅读1分钟

如何使用Video组件播放视频

参数说明: src: 鸿蒙系统中,video播放视频可以播放在线也可以播放本地文件,但是本地文件时,需要有文件可读权限,视频支持格式 mp4 mkv webm TS, 格式为:file://data/storage 播放本地文件 写法localVideo: Resource = $rawfile('test.mp4') 播放网络地址:直接写url地址即可 也可以播放在resources下video或者rawfile文件夹防多媒体资源, 格式为:dataability://的路径前缀

currentProgressRate 视频播放倍速说明: number取值仅支持:0.75,1.0,1.25,1.75,2.0。 默认值:1.0 | PlaybackSpeed.Speed_Forward_1_00_X

previewUri:视频未播放时的预览图片路径,默认不显示图片。

controller:设置视频控制器,可以控制视频的播放状态。

代码如下

 @Entry
@Component
struct VideoPage {
  //@State srcs: Resource = $rawfile('')
  @State srch:string= 'https://www.w3school.com.cn/i/movie.mp4'
  @State previewUri: Resource = $r('app.media.icon')
  controller:VideoController = new VideoController()
  build() {
    Column(){
      Video({
        src:this.srch,//视频源
        previewUri:this.previewUri,//预览图路径
        currentProgressRate:PlaybackSpeed.Speed_Forward_1_00_X,//播放倍数
        controller:this.controller //控制器
      })
        .autoPlay(true)
        .controls(true)
        .onStart(()=>{
            console.error('onstart')
        })
        .onPause(()=>{
          console.error('onpause')
        })
        .onFinish(()=>{

        })
    }
  }
}

应用权限申请 本地视频播放,需要ohos.permission.MODIFY_AUDIO_SETTINGS和ohos.permission.READ_MEDIA两个权限 网络视频播放,需要ohos.permission.INTERNET网络权限 在resource/module.json5文件添加一下权限,注意在module节点下添加,如果已经有requestPermissions,直接在json数组上增加,如果没有就拷贝以下代码到module节点下即可。

image.png


 "requestPermissions": [
      {
        "name": "ohos.permission.INTERNET",
        "usedScene": {
          "when": "always"
        },
 
      },
      {
        "name": "ohos.permission.MODIFY_AUDIO_SETTINGS",
        "usedScene": {
          "when": "always"
        }
      },
      {
        "name": "ohos.permission.READ_MEDIA",
        "usedScene": {
          "when": "always"
        }
      }
    ]

注意:模拟器和真机才能使用video组件,预览器是无法播放的

image.png