video-format.uvue 3.4 KB
Newer Older
1
<template>
2
  <!-- #ifdef APP -->
H
hdx 已提交
3 4
  <scroll-view class="page-scroll-view">
  <!-- #endif -->
5 6 7 8 9 10 11 12
    <page-head :title="title"></page-head>
    <view class="uni-padding-wrap uni-common-mt">
      <view class="uni-title">
        <text class="uni-title-text">支持的视频格式示例</text>
      </view>
      <view v-for="(item,index) in supportFormats" :key="index">
        <text class="uni-subtitle-text">{{item.format}}</text>
        <video :id="'video-' + item.format" class="video" :src="item.src" :controls="true" :direction="-90"
DCloud-yinjiacheng's avatar
DCloud-yinjiacheng 已提交
13
          @error="onError(item.format, $event as UniVideoErrorEvent)"></video>
14 15 16 17 18 19 20 21 22
      </view>
      <view class="uni-title">
        <text class="uni-title-text">暂不支持的格式</text>
      </view>
      <view v-for="(item,index) in notSupportFormats" :key="index">
        <text class="uni-subtitle-text">{{item.format}}</text>
        <video :id="'video-' + item.format" class="video" :src="item.src" :controls="true" :direction="-90"></video>
      </view>
    </view>
H
hdx 已提交
23
  <!-- #ifdef APP -->
24
  </scroll-view>
25
  <!-- #endif -->
26 27 28
</template>

<script>
H
hdx 已提交
29 30 31 32 33
  type VideoFormat = {
    format : string
    src : string
  }

34 35 36 37 38
  export default {
    data() {
      return {
        title: 'video-format',
        supportFormats: [
雪洛's avatar
雪洛 已提交
39
          // TODO web本地运行时本地服务返回的content-type不对,导致本地视频无法播放。此外web端原生video不支持flv、m3u8、avi格式,但是和app端相比多了ogg格式的支持
40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59
          {
            format: 'mp4',
            src: 'https://qiniu-web-assets.dcloud.net.cn/video/sample/2minute-demo.mp4'
          },
          {
            format: 'm4v',
            src: 'https://qiniu-web-assets.dcloud.net.cn/video/sample/2minute-demo.m4v'
          },
          {
            format: 'mov',
            src: 'https://qiniu-web-assets.dcloud.net.cn/video/sample/2minute-demo.mov'
          },
          {
            format: 'webm',
            src: 'https://qiniu-web-assets.dcloud.net.cn/video/sample/2minute-demo.webm'
          },
          {
            format: '3gp',
            src: 'https://qiniu-web-assets.dcloud.net.cn/video/sample/2minute-demo.3gp'
          },
雪洛's avatar
雪洛 已提交
60
          // #ifndef WEB
61 62 63 64 65 66 67 68 69 70 71
          {
            format: 'flv',
            src: 'https://qiniu-web-assets.dcloud.net.cn/video/sample/2minute-demo.flv'
          },
          {
            format: 'm3u8',
            src: 'https://qiniu-web-assets.dcloud.net.cn/video/sample/2minute-demo.m3u8'
          },
          {
            format: '本地m3u8',
            src: '/static/test-video/2minute-demo.m3u8'
W
wanganxp 已提交
72
          },
雪洛's avatar
雪洛 已提交
73
          // #endif
W
wanganxp 已提交
74 75 76 77
          {
            format: '错误路径',
            src: 'https://www.dcloud.net.cn/errorpath.mp4'
          },
78 79
        ] as Array<VideoFormat>,
        notSupportFormats: [
雪洛's avatar
雪洛 已提交
80
          // #ifndef WEB
81 82 83 84
          {
            format: 'ogg',
            src: 'https://qiniu-web-assets.dcloud.net.cn/video/sample/2minute-demo.ogg'
          },
雪洛's avatar
雪洛 已提交
85
          // #endif
86 87 88 89 90 91 92 93 94
          {
            format: 'avi',
            src: 'https://qiniu-web-assets.dcloud.net.cn/video/sample/2minute-demo.avi'
          }
        ] as Array<VideoFormat>,
        isError: false
      }
    },
    methods: {
DCloud-yinjiacheng's avatar
DCloud-yinjiacheng 已提交
95
      onError: function (format : string, e : UniVideoErrorEvent) {
雪洛's avatar
雪洛 已提交
96
        console.log(format + ":" + JSON.stringify(e));
97
        if (format != "错误路径") {
DCloud-yinjiacheng's avatar
DCloud-yinjiacheng 已提交
98 99
          this.isError = true;
        }
100 101 102 103 104 105 106
      }
    }
  }
</script>

<style>
  .video {
H
hdx 已提交
107
    height: 200px;
108 109
  }
</style>