短视频矩阵系统源码打包附赠分享

news2024/11/28 13:34:18

矩阵系统源码主要有三种框架:Spring、Struts和Hibernate。Spring框架是一个全栈式的Java应用程序开发框架,提供了IOC容器、AOP、事务管理等功能。Struts框架是一个MVC架构的Web应用程序框架,用于将数据模型、Web应用程序的用户界面和控制器逻辑分离。Hibernate框架是一个面向对象的数据库访问框架,提供了ORM(对象关系映射)机制,允许开发人员使用面向对象的方式来操作数据库。这三种框架结合使用,可以提高开发效率,降低代码复杂度,提高系统性能和稳定性。

 

video' => [
                'type'  => 1,
                'title' => '视频素材('.($material_model->getMaterialCountByVideo($da_id, 1)).')',
                'url'   => "/dydqtshoppc/video/materialList?dv_id={$da_id}&type=1",
            ],
            'image' => [
                'type'  => 3,
                'title' => '图片素材('.($material_model->getMaterialCountByVideo($da_id, 3)).')',
                'url'   => "/dydqtshoppc/video/materialList?dv_id={$da_id}&type=3",
            ],
            'audio' => [
                'type'  => 2,
                'title' => '音频素材('.($material_model->getMaterialCountByVideo($da_id, 2)).')',
                'url'   => "/dydqtshoppc/video/materialList?dv_id={$da_id}&type=2",
            ],
            'title' => [
                'type'  => 4,
                'title' => '标题素材('.($material_model->getMaterialCountByVideo($da_id, 4)).')',
                'url'   => "/dydqtshoppc/video/materialList?dv_id={$da_id}&type=4",
            ],
            'write' => [
                'type'  => 5,
                'title' => '文案素材('.($material_model->getMaterialCountByVideo($da_id, 5)).')',
                'url'   => "/dydqtshoppc/video/materialList?dv_id={$da_id}&type=5",
            ],
            /*
            'dubin' => [
                'type'  => 6,
                'title' => '配音选择',
                'url'   => "/dydqtshoppc/video/materialList?dv_id={$da_id}&type=6",
            ],
            */
            'background'    => [
                'type'  => 7,
                'title' => '背景选择('.($material_model->getMaterialCountByVideo($da_id, 7)).')',
                'url'   => "/dydqtshoppc/video/materialList?dv_id={$da_id}&type=7",
            ],
            'mixcut'    => [
                'type'  => 0,
                'title' => 'AI混剪视频('.($temp_video_count).')',
                'url'   => "/dydqtshoppc/video/videoTemplateList?dv_id={$da_id}&type=0",
            ],
        ];
        switch ($video_mode) {
            case 1 :
            case 2 :
            case 3 :
            case 4 :
                unset($type_list['image']);
                break;
            case 11 :
                unset($type_list['video']);
                $type   = $type == 1 ? 3 : $type;
                break;
            default :

                break;
        }
        $type_list_single = array_column($type_list,'title','type');
        $this->output['now_type']   = $type;
        $this->output['type_list']  = $type_list;
        $this->output['type_list_single']  = $type_list_single;

        //获取素材组合信息
        $pailie_model   = new App_Model_Douyin_MysqlVideoMaterialPailieStorage();
        $pailie_row     = $pailie_model->getRowByDvid($da_id);
        $pailie_row['dvmp_pailie_have']     = $pailie_row['dvmp_total']-$pailie_row['dvmp_used'];
        //视频混剪模式
        $this->output['pailie_row']         = $pailie_row;
        $this->output['temp_video_count']   = $temp_video_count;
        $this->output['project_mode']       = plum_parse_config('project_mixed_mode','dydqt/project')[$video_mode];
        //输出操作指引
        $index  = [
            1   => [
                'order'     => 1,
                'title'     => '视频素材',
                'desc'      => '根据混剪模式,必须上传',
                'url'       => "/dydqtshoppc/video/materialList?dv_id={$da_id}&type=1",
            ],
            2   => [
                'order'     => 2,
                'title'     => '音频素材',
                'desc'      => '背景音与文案配音,可二选一',
                'url'       => "/dydqtshoppc/video/materialList?dv_id={$da_id}&type=2",
            ],
            3   => [
                'order'     => 3,
                'title'     => '标题素材',
                'desc'      => '视频上半部分的标题,可不传',
                'url'       => "/dydqtshoppc/video/materialList?dv_id={$da_id}&type=4",
            ],
            4   => [
                'order'     => 4,
                'title'     => '文案素材',
                'desc'      => '视频下半部分的文案,可不传',
                'url'       => "/dydqtshoppc/video/materialList?dv_id={$da_id}&type=5",
            ],
        ];

        if ($video_mode == 11) {
            $index[1]   = [
                'order'     => 1,
                'title'     => '图片素材',
                'desc'      => '根据混剪模式,必须上传',
                'url'       => "/dydqtshoppc/video/materialList?dv_id={$da_id}&type=3",
            ];
        }
        $this->output['oper_index'] = $index;
    }

    /*
     * 素材管理
     */
    public function materialListAction(){
        //面包屑
        $breadcrumbs = [
            ['title' => '视频管理', 'link' => '/video/videoList'],
            ['title' => '素材管理', 'link' => '#'],
        ];
        $this->buildBreadcrumbs($breadcrumbs);

        $dv_id                  = $this->request->getIntParam('dv_id');  //活动ID
        $type                   = $this->request->getIntParam('type',0);   //素材类型
        $keyword_type           = $this->request->getStrParam('keyword_type');
        $keyword                = $this->request->getStrParam('keyword');
        $scene  = $this->request->getIntParam('scene',0);

        //获取视频信息
        $video_model    = new App_Model_Douyin_MysqlVideoStorage();
        $video_info     = $video_model->getRowByIdSid($dv_id, $this->sid);
        if(empty($video_info)){
            plum_redirect_with_msg('该视频不存在');
        }
        $mixed_video_mode   = $video_info['dv_video_mode'];
        if (in_array($mixed_video_mode, [11])) {    //智能图片组合
            $type   = in_array($type, [0,1]) ? 3 : $type;   //默认为图片素材类型
        } else {
            $type   = in_array($type, [0, 3]) ? 1 : $type;  //默认为视频素材类型
        }

        //获取素材列表
        $where = [
            ['name' => 'dvm_ds_id', 'oper' => '=', 'value' => $this->sid],
            ['name' => 'dvm_dv_id', 'oper' => '=', 'value' => $dv_id],
            ['name' => 'dvm_material_type', 'oper' => '=', 'value' => $type]
        ];
        //视频类型,区分混剪模式
        if ($type == 1) {
            $where[] = ['name' => 'dvm_video_mixed_mode', 'oper' => '=', 'value' 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/620410.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【备战秋招】Java异常处理

Java程序在执行过程中所发生的异常事件可分为两类: Error:Java虚拟机无法解决的严重问题。如:JVM系统内部错误、资源 耗尽等严重情况。 比如:StackOverflowError和OOM。一般不编写针对性的代码进行处理。 Exception: 其它因编程错…

使用pytorch进行FFT和STFT

首先,我们定义一个波形,幅值分别为20和38,频率为2和13: y 20 sin ⁡ ( 2 π 2 x ) 38 sin ⁡ ( 2 π 13 x ) y20 \sin (2\pi \times 2x)38\sin (2\pi \times 13x) y20sin(2π2x)38sin(2π13x) 采样频率为200Hz,采…

十四届蓝桥杯省赛CB

hinhin可否不要老&#xff0c;令创新高 A 日期统计B 01 串的熵C 冶炼金属D: 飞机降落E: 接龙数列F: 岛屿个数G: 子串简写H: 整数删除I: 景区导游J: 砍树 A 日期统计 #include <bits/stdc.h> using namespace std; #define int long long int #define pii pair<int,int…

VR云探校:解锁不一样的视角,“沉浸式”打卡校园

仲夏六月&#xff0c;又是一年高考时&#xff0c; 高考首战已经正式拉开帷幕&#xff0c; 超千万考生赴考&#xff0c;更有千万考生家长花式赴考。 少年的你披星戴月走过的路&#xff0c;终将会繁华遍地&#xff0c;今天VR全景就为千万考生和家长解锁不一样的视角&#xff0…

java观察者模式例子

观察者模式&#xff1a; 是一种常用的设计模式&#xff0c;它定义了一种一对多的关系&#xff0c;让多个观察者对象同时监听某一个主题对象&#xff0c;当主题对象状态发生变化时&#xff0c;它的所有观察者都会收到通知并且自动更新。 在观察者模式中&#xff0c;主题对象通…

Minicap编译及简单使用

什么是MiniCap 官方说法&#xff1a;Minicap提供了一个套接字接口&#xff0c;用于从Android设备流式传输实时屏幕捕获数据。它旨在用作更大程序中的组件&#xff0c;因此仅凭其本身并不是非常有用。例如&#xff0c;它在STF中用于远程控制。 个人理解&#xff1a;Minicap是用…

如何检查 Android 设备是否支持 Widevine DRM

想知道您的 Android 设备是否可以流式传输来自 Netflix 和 Amazon Prime Video 的高清视频&#xff1f;这是检查 Widevine DRM 支持的方法&#xff01; 许多流媒体服务&#xff0c;如 Netflix、Disney、Hulu 等&#xff0c;使用各种类型的数字版权管理 (DRM) 来保护其内容不被…

VulnHub项目:Hogwarts dobby

靶机地址&#xff1a;Hogwarts: Dobby ~ VulnHub 哈利波特也是初中时候最喜欢的电影~Dobby多比是马尔福加的奴隶精灵&#xff0c;出现在第二部密室中&#xff0c;后来被哈利波特的袜子所拯救&#xff0c;成为了一只快乐自由的小精灵&#xff0c;最后它在死亡圣器中&#xff0c…

keil从非0x08000000地址调试STM32单片机程序方法

在使用stm32单片机的串口IAP升级功能时&#xff0c;需要调试bootloader程序和app程序&#xff0c;一般bootloader的程序都是从0x08000000地址开始运行的&#xff0c;使用keil软件可以直接进行仿真&#xff0c;但是如果调试app程序的话&#xff0c;由于它不是从0x08000000地址开…

Java程序判断是否是回文

1 问题 利用java程序判断是否是回文。 2 方法 利用函数库&#xff0c;将输入的字符串倒置&#xff0c;看倒置后的字符串和原来的字符串是否一样&#xff0c;然后得出结论。 package practice; import java.util.Scanner; public class Huiwen { public static void main(St…

【MySQL数据库 | 第五篇】DDl操作数据库

目录 &#x1f914;DDL介绍&#xff1a; &#x1f914;语法详解&#xff1a; 1.查询&#xff1a; 1.查询所有数据库&#xff1a; 示例&#xff1a;查询自带数据库 2.查询当前数据库&#xff1a; 2.创建&#xff1a; 示例&#xff1a;创建一个名字叫做itcast的数据库&…

第一期丨INTERSPEECH 2023 论文预讲会

INTERSPEECH 2023 论文预讲会是由CCF语音对话与听觉专委会、语音之家主办&#xff0c;旨在为学者们提供更多的交流机会&#xff0c;更方便、快捷地了解领域前沿。活动将邀请 INTERSPEECH 2023 录用论文的作者进行报告交流。 INTERSPEECH 2023 论文预讲会第一期邀请到清华大学和…

【新版】系统架构设计师 - 系统工程与信息系统基础

个人总结&#xff0c;仅供参考&#xff0c;欢迎加好友一起讨论 文章目录 架构 - 系统工程与信息系统基础考点摘要系统工程概念系统工程方法生命周期阶段及方法 信息系统诺兰模型信息系统的生命周期信息系统的建设原则信息系统的开发方法信息系统的分类信息化系统业务处理系统【…

【高危】Apache Cassandra 存在越权漏洞导致远程命令执行

漏洞描述 Apache Cassandra 是 Apache 基金会的一个分布式 Nosql 数据库。 Apache Cassandra 的受影响版本中&#xff0c;由于没有对JMX/nodetool权限的用户做限制&#xff0c;当启动FQL/Audit日志时&#xff0c;拥有 JMX/nodetool 权限的攻击者可以以 cassandra 的身份权限执…

QMediaPlayer 打包解码器注意事项

程序打包注意事项 如果需要把我们的程序进行打包&#xff0c;给客户安装使用&#xff0c;那么还需要引导客户额外安装LAVFilters&#xff0c;显得比较麻烦。接下来&#xff0c;介绍&#xff0c;如何将解码器打包进安装包。 1、QMediaPlayer找到解码器的原理 先来看看解码器&am…

Android 各版本特性

一&#xff1a;介绍 我们可以看到Android版本对应的Api版本 二&#xff1a;Android 6.0 &#xff08;API 23&#xff09; Google I/O 2015大会如约已于2015年5月28日举行。在发布会上代号为“Marshmallow&#xff08;棉花糖&#xff09;”的安卓6.0系统正式推出。 Android …

LVS简介及LVS-NAT负载均衡群集的搭建(要像记得回家的路一样记得理想和远方)

文章目录 一、LVS群集的简介1.群集的含义和应用场景2.性能扩展方式群集的分类负载均衡&#xff08;LB&#xff09;高可用&#xff08;HA&#xff09;高性能运算&#xff08;HPC&#xff09; 二、LVS负载均衡群集简介及搭建1.负载均衡群集架构第一层&#xff0c;负载调度器&…

Linux - sudo:/etc/sudoers 可被任何人写

错误如下&#xff1a; sudo: /etc/sudoers 可被任何人写 sudo: 没有找到有效的 sudoers 资源&#xff0c;退出 sudo: 无法初始化策略插件 需求就是除了root账号&#xff0c;别的账号也能执行mkdir等命令 1. 先用root把 chmod 777 /etc/sudoers 设置可修改 2. 添加一条 xxx…

JIRA维护记——使用原实例位置恢复数据

一、出现问题 昨天下班了&#xff0c;同事反馈Jira又不能使用了。想都不用想&#xff0c;肯定是磁盘空间不足了&#xff0c;因为已经出现过几次了。之前都是清理一下磁盘空间即可&#xff0c;都不用重启Jira。 今天一上班就开始清理磁盘空间&#xff0c;把一些日志啊&#xf…

数据在内存中的存储(打入“内部”深度剖析哦)

前面的文章介绍中&#xff0c;只对整数在内存中的存储进行了简单介绍&#xff0c;可是只了解这么一点点是远远不够的呢&#xff0c;这篇文章呢就对数据在内存中的存储的几个重难点进行了详细的介绍哦&#xff0c;希望对爱学习的小伙伴们有所帮助&#xff5e; 目录 一.数据类型…