dever 4 years ago
parent
commit
76febaeb58
8 changed files with 72 additions and 66 deletions
  1. 25 55
      assets/html/cover.html
  2. 2 2
      database/upload.php
  3. 0 6
      lib/Store/Oss.php
  4. 8 1
      lib/View/Oss.php
  5. 6 0
      lib/View/Qiniu.php
  6. 1 1
      src/Qiniu.php
  7. 10 0
      src/View.php
  8. 20 1
      src/Yun.php

+ 25 - 55
assets/html/cover.html

@@ -30,67 +30,37 @@
 
 <div class="layui-card"  id="component-anim">
   <div class="layui-card-header">
-    <input type="hidden" class="cover_key" value="<{$key}>">
-    <div class="layui-inline"><div class="layui-input-inline"><input type="text" style="width: 100%;" class="layui-input cover_cur" value="<{$cur}>" autocomplete="new-password" ></div></div>
+    <input type="hidden" id="cover_key" value="<{$key}>">
+    <input type="hidden" id="cover_cur" value="<{$cur}>">
+    <div class="layui-inline">第几秒截图:<div class="layui-input-inline"><input type="text" style="width: 100%;" class="layui-input" id="cover_num" value="1" ></div></div>
 
-    <div class="layui-inline" style="display: none;"><div class="layui-input-inline"><input type="text" style="width: 100%;"  class="layui-input file_tag" value="<{$search_tag}>" autocomplete="new-password" placeholder="标签"></div></div>
+    <div class="layui-inline" class="file-search" onclick="crop()"><div class="layui-input-inline"><button type="button" class="layui-btn"><i class="fa fa-save"></i> 生成</button></div></div>
 
-    <div class="layui-inline"><div class="layui-input-inline"><select lay-ignore="" class="layui-input file_cate" style="width: 100%;"><option parent="" value="-1" selected="">选择分类</option>
-        <{loop($cate):}>
-        <option parent="" value="<{$v.id}>" <{if($v.id == $search_cate):}>selected<{endif}>><{$v.name}></option>
-        <{endloop}>
-    </select></div></div>
-
-    <div class="layui-inline" class="file-search" id="showUploadFilesSearch" onclick="showUploadFilesSearch($(this), 1, false, 1)"><div class="layui-input-inline"><button type="button" class="layui-btn"><i class="fa fa-save"></i> 搜索</button></div></div>
-
-    <div class="layui-inline" class="file-search" onclick="showUploadFilesUpload($(this))"><div class="layui-input-inline"><button type="button" class="layui-btn"><i class="fa fa-save"></i> 上传</button></div></div>
-
-    <div class="layui-inline" class="file-search" id="showUploadFilesSearch2" onclick="showUploadFilesSearch($(this), 2, false, 1)"><div class="layui-input-inline"><button type="button" class="layui-btn layui-btn-danger"><i class="fa fa-submit"></i> 回收站</button></div></div>
-
-    <div class="layui-inline" class="file-search" id="showUploadFilesSearch" onclick="showUploadFilesSearch($(this), 1, true, 1)"><div class="layui-input-inline"><button type="button" class="layui-btn layui-btn-normal"><i class="fa fa-save"></i> 全部图库</button></div></div>
 
   </div>
   <div class="layui-card-body">
-    
-    <ul class="component-anim-demo">
-        <{loop($file):}>
-      <li class="<{if($v1.check):}>layui-anim-yes<{else:}>layui-anim-no<{endif}>">
-        <div class="layui-anim" data-anim="layui-anim-up" onclick="showUploadFilesSet($(this), '<{$v1.name}>','<{$v1.url}>','<{$v1.id}>')"><img src="<{$v1.pic}>" style="max-width: 150px;max-height: 100px;margin-left: 10px;"/></div>
-        <div class="code" style="margin-left: 5px;" onclick="showUploadFilesShowValue($(this))"><{$v1.source_name}></div>
-        <div class="code" ><a style="color:<{$v1.stateColor}>;cursor: pointer;" onclick="showUploadFilesSetState($(this), '<{$v1.stateUrl}>')">[<{$v1.stateName}>]</a>
-
-        <{if($v1.state == 1):}>
-        <a class="code" style="color:blue;cursor: pointer;" onclick="showUploadFilesSetValue($(this), '<{$v1.valueUrl}>', 't<{$v1.id}>', '<{$v1.value}>')">[附加值]</a>
-        <{endif}>
-        </div>
-
-      </li>
-      <{endloop}>
-    </ul>
-    <div id="file-page"></div>
-</div>
-
-  
-
+    <div class="layui-row layui-col-space15">
+      <div class="layui-col-md6">
+        <div class="layui-panel">
+          <iframe src="<{$video}>" scrolling="no" style="border: medium none;overflow: hidden;" width="300"></iframe>
+        </div>   
+      </div>
+      <div class="layui-col-md6">
+        <div class="layui-panel">
+          <img src="<{$cover_pic}>" id="cover_pic" width="300" />
+        </div>   
+      </div>
+    </div>    
+  </div>
 <script>
-layui.use('laypage', function(){
-  var laypage = layui.laypage;
-  
-  //执行一个laypage实例
-  laypage.render({
-    elem: 'file-page' //注意,这里的 test1 是 ID,不用加 # 号
-    ,count: <{$total}> //数据总数,从服务端得到
-    ,limit:12
-    ,curr:<{$search_pg}>
-    ,jump: function(obj, first){
-        //首次不执行
-        if(!first){
-          $('.file_pg').val(obj.curr);
-            showUploadFilesSearch($('.file_pg'), showUploadFilesSearchState, showUploadFilesSearchAll);
-        }
-      }
-  });
-});
+function crop()
+{
+    var num = $('#cover_num').val();
+    var cur = $('#cover_cur').val();
+
+    $('#cover_pic').attr('src', cur + '?vframe/jpg/offset/' + num);
+}
+crop();
 </script>
 
 </div>

+ 2 - 2
database/upload.php

@@ -186,7 +186,7 @@ return array
 			'desc' 		=> '是否进行视频转码',
 			'match' 	=> 'is_numeric',
 			'option' 	=> $vod_convert,
-			'update'	=> 'radio',
+			//'update'	=> 'radio',
 			//'list'		=> true,
 			'show'	=> 'save_type=2,3,4',
 			'control'	=> 'vod_convert',
@@ -199,7 +199,7 @@ return array
 			'default' 	=> '',
 			'desc' 		=> '队列名称',
 			'match' 	=> 'option',
-			'update'	=> 'textarea',
+			//'update'	=> 'textarea',
 			//'list'		=> true,
 			'show'	=> 'vod_convert=2',
 		),

+ 0 - 6
lib/Store/Oss.php

@@ -189,10 +189,4 @@ class Oss extends Core implements Config
         }
         return $dest;
     }
-
-    # 视频截图
-    public function handle_v()
-    {
-        //x-oss-process=video/snapshot,t_1000,f_jpg,m_fast 
-    }
 }

+ 8 - 1
lib/View/Oss.php

@@ -136,6 +136,13 @@ class Oss
 	# 视频转码
     public function convert($key, $file, $config, $upload)
     {
-        
+        //?x-oss-process=video/snapshot,t_7000,f_jpg,w_800,h_600,m_fast
+        //t以后是毫秒
+    }
+
+    # 视频截图
+    public function vocer()
+    {
+        //x-oss-process=video/snapshot,t_1000,f_jpg,m_fast 
     }
 }

+ 6 - 0
lib/View/Qiniu.php

@@ -127,4 +127,10 @@ class Qiniu
             var_dump($ret);
         }*/
     }
+
+    # 视频截图
+    public function cover()
+    {
+        //vframe/jpg/offset/7/w/480/h/360
+    }
 }

+ 1 - 1
src/Qiniu.php

@@ -8,7 +8,7 @@ namespace Upload\Src;
 
 use Dever;
 Dever::apply('sdk/qiniu', 'upload');
-
+# 废弃,直接用yun代替
 class Qiniu
 {
 	public function callback()

+ 10 - 0
src/View.php

@@ -204,10 +204,20 @@ class View
         $data['cur'] = Dever::input('cur');
         $data['cover'] = Dever::input('cover');
 
+        $data['cover_pic'] = $data['cur'] . '?vframe/jpg/offset/1';
+        $data['video'] = Dever::url('view.video?video=' . Dever::encode($data['cur']), 'upload');
         $data = Dever::render('cover', $data);
         Dever::out($data);
     }
 
+    # 展示视频
+    public function video()
+    {
+        $video = Dever::decode(Dever::input('video'));
+
+        return '<video src="'.$video.'" width="300" controls="true"/>';
+    }
+
     public function setState()
     {
         $id = Dever::input('id');

+ 20 - 1
src/Yun.php

@@ -20,6 +20,23 @@ class Yun
 		return Dever::load('upload/lib/view/' . $method);
 	}
 
+    # 查看视频截图
+    public function cover($key)
+    {
+        $upload = Dever::db('upload/upload')->one($key);
+
+        if ($upload) {
+
+            if ($upload['yun'] > 0) {
+                $config = Dever::db('upload/yun')->one($upload['yun']);
+                return $this->getMethod($config['type'])->cover($key, $file, $config, $upload);
+            }
+        }
+
+        return false;
+    }
+
+    # 获取token
 	public function token()
     {
         $return = Dever::input('return', 2);
@@ -53,6 +70,7 @@ class Yun
         echo json_encode($result);die;
     }
 
+    # 获取回调
 	public function callback()
 	{
 		$config = Dever::input('config');
@@ -77,6 +95,7 @@ class Yun
 		return 'ok';
 	}
 
+    # 初始化
     private function initFile($key, $file, $source, $width = false, $height = false, $size = false, $search = '')
     {
         $temp = explode('/', $file);
@@ -132,7 +151,7 @@ class Yun
             if ($upload['yun'] > 0 && $upload['vod_convert'] == 2) {
                 $config = Dever::db('upload/yun')->one($upload['yun']);
                 if ($config) {
-                    $this->getMethod($method)->convert($key, $file, $config, $upload);
+                    $this->getMethod($config['type'])->convert($key, $file, $config, $upload);
                 }
             }
             $this->initFile($key, $file, $source, false, false, false, $search);