java實現音頻、視頻離開頁面存儲收聽記錄、觀看記錄

    說明:本文是既《SpringBoot+thymeleaf完成視頻記憶播放功能》的續寫,如有興趣可點擊鏈接查看。

    一、功能背景描述說明:

    1、在手機瀏覽器離開時將看到的視頻記錄、視頻時長和音頻的收聽記錄、收聽時長存入數據庫記錄;

    2、用戶通過將觀看、收聽記錄導出,能夠看到是誰看了哪些視頻、看了多長時間、上一次看到的位置等。

    二、實現過程:

    1)框架:SpringBoot+thymeleaf

    2)pom.xml文件

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>2.6.4</version><relativePath/> <!-- lookup parent from repository --></parent><groupId>com.example</groupId><artifactId>mybatisdemo02</artifactId><version>0.0.1-SNAPSHOT</version><name>mybatisdemo02</name><description>Demo project for Spring Boot</description><properties><java.version>17</java.version></properties><dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-test</artifactId><scope>test</scope></dependency><dependency><groupId>org.mybatis</groupId><artifactId>mybatis</artifactId><version>3.5.2</version></dependency><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><version>8.0.15</version></dependency><!-- video player 讀取視頻播放時長--><!--<dependency><groupId>it.sauronsoftware</groupId><artifactId>jave</artifactId><version>1.0.2</version></dependency>--><!--視頻多媒體工具包 包含 FFmpeg、OpenCV--><dependency><groupId>org.bytedeco</groupId><artifactId>javacv-platform</artifactId><version>1.5.3</version></dependency><!-- 音頻依賴 --><dependency><groupId>ws.schild</groupId><artifactId>jave-core</artifactId><version>2.4.6</version></dependency><!--<dependency><groupId>ws.schild</groupId><artifactId>jave-nativebin-win32</artifactId><version>3.1.1</version></dependency>--><dependency><groupId>ws.schild</groupId><artifactId>jave-native-win64</artifactId><version>2.4.6</version></dependency><dependency><groupId>org.webjars.bower</groupId><artifactId>jquery</artifactId><version>1.9.1</version></dependency><!-- https://mvnrepository.com/artifact/commons-lang/commons-lang --><dependency><groupId>commons-lang</groupId><artifactId>commons-lang</artifactId><version>2.6</version></dependency><dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId></dependency><dependency><groupId>org.openjfx</groupId><artifactId>javafx-controls</artifactId><version>16</version></dependency><dependency><groupId>com.alibaba</groupId><artifactId>fastjson</artifactId><version>2.0.21</version></dependency><!-- 頁面 --><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-thymeleaf</artifactId></dependency><!-- excle工具 --><dependency><groupId>org.apache.poi</groupId><artifactId>poi-ooxml</artifactId><version>4.1.2</version></dependency><!-- 時間日期工具 --><dependency><groupId>cn.hutool</groupId><artifactId>hutool-core</artifactId><version>5.8.14</version></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId><exclusions><!-- 排除自帶的logback依賴 --><exclusion><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-logging</artifactId></exclusion></exclusions></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-log4j</artifactId><version>1.3.8.RELEASE</version></dependency></dependencies><build><plugins><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId></plugin></plugins><!-- 指向靜態資源路徑 --><resources><resource><directory>src/main/java</directory><includes><include>**/*.properties</include><include>**/*.xml</include></includes><filtering>true</filtering></resource></resources></build></project>

    3)配置application.properties屬性文件

server.port=8080
spring.application.name=mybatisdemo02
spring.thymeleaf.prefix=classpath:/templates/
spring.web.resources.static-locations=classpath:/META-INF/resources/,classpath:/resources/,classpath:/static/,classpath:/public/,classpath:/templates/
#pring.resources.static-locations=classpath:/static/
spring.thymeleaf.suffix=.html
spring.thymeleaf.mode=HTML5
# mybatis日志打印
mybatis.configuration.log-impl=org.apache.ibatis.logging.stdout.StdOutImpl
log4j.logger.org.mybatis.caches=DEBUG

    4)配置log4j.properties屬性文件

log4j.logger.org.springframework.boot.autoconfigure=ERROR
#log4j 配置
#log4j定義了8個級別的log優先級從高到低依次為:OFF、FATAL、ERROR、WARN、INFO、DEBUG、TRACE、 ALL。
#CONSOLE前面的DEBUG是控制臺需要打印什么DEBUG級別以上的日志的信息
log4j.rootLogger=DEBUG, CONSOLE, ERROR, WARN, INFO, DEBUG, ALL
#-----------------------------------------------------------------------------------------------------
#輸出信息到控制臺CONSOLE
log4j.appender.CONSOLE = org.apache.log4j.ConsoleAppender 
log4j.appender.CONSOLE.Target = System.out
log4j.appender.CONSOLE.layout = org.apache.log4j.PatternLayout
log4j.appender.CONSOLE.layout.ConversionPattern = [%-5p] %d{yyyy-MM-dd HH:mm:ss,SSS} method:%l%n%m%n
#-----------------------------------------------------------------------------------------------------
#輸出ERROR 級別以上的日志到error.log
log4j.logger.ERROR=ERROR
log4j.appender.ERROR = org.apache.log4j.DailyRollingFileAppender
log4j.appender.ERROR.File =E:/log/error.log
log4j.appender.ERROR.Threshold = ERROR 
log4j.appender.ERROR.Append = true
log4j.appender.ERROR.layout = org.apache.log4j.PatternLayout
log4j.appender.ERROR.layout.ConversionPattern = %-d{yyyy-MM-dd HH:mm:ss}  [ %t:%r ] - [ %p ]  %m%n
#-----------------------------------------------------------------------------------------------------
#輸出DEBUG 級別以上的日志到debugger.log
log4j.logger.org.apache.ibatis.cache.Cache=DEBUG
log4j.appender.DEBUG = org.apache.log4j.DailyRollingFileAppender
log4j.appender.DEBUG.File = E:/log/debugger.log
log4j.appender.DEBUG.Threshold = DEBUG
log4j.appender.DEBUG.Append = true
log4j.appender.DEBUG.layout = org.apache.log4j.PatternLayout
log4j.appender.DEBUG.layout.ConversionPattern = %-d{yyyy-MM-dd HH:mm:ss}  [ %t:%r ] - [ %p ]  %m%n
#-----------------------------------------------------------------------------------------------------
#輸出ALL級別的日志到all.log
log4j.logger.ALL=ALL
log4j.appender.ALL = org.apache.log4j.DailyRollingFileAppender
log4j.appender.ALL.File = E:/log/all.log
log4j.appender.file.DatePattern ='.'yyyy-MM-dd
log4j.appender.ALL.Threshold = ALL 
log4j.appender.ALL.Append = true
log4j.appender.ALL.layout = org.apache.log4j.PatternLayout
log4j.appender.ALL.layout.ConversionPattern = %-d{yyyy-MM-dd HH:mm:ss}  [ %t:%r ] - [ %p ]  %m%n

    5)配置mybatisConfig.xml

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE configurationPUBLIC "-//mybatis.org//DTD Config 3.0//EN""http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration><settings><setting name="lazyLoadingEnabled" value="false" /><setting name="logImpl" value="STDOUT_LOGGING" /><!--二級緩存:全局地開啟或關閉配置文件中的所有映射器已經配置的任何緩存。 --><setting name="cacheEnabled" value="true"/></settings><typeAliases><typeAlias type="com.example.mybatisdemo02.model.Person" alias="Person"/><typeAlias type="com.example.mybatisdemo02.model.Warn" alias="Warn"/></typeAliases><!-- environments表示配置Mybatis的開發環境,可以配置多個環境,在眾多具體環境中,使用default屬性指定實際運行時使用的環境。default屬性的取值是environment標簽的id屬性的值。 --><environments default="development"><!-- environment表示配置Mybatis的一個具體的環境 --><environment id="development"><!-- Mybatis的內置的事務管理器 --><transactionManager type="JDBC"/><!-- 配置數據源 --><dataSource type="POOLED"><!-- 建立數據庫連接的具體信息 --><property name="driver" value="com.mysql.cj.jdbc.Driver" /><property name="url" value="jdbc:mysql://localhost:3306/mybatis?useUnicode=true&amp;characterEncoding=utf8&amp;serverTimezone=GMT%2B8&amp;useSSL=false" /><property name="username" value="root"/><property name="password" value="xxxxxx"/></dataSource></environment></environments><mappers><!--引入映射文件--><package name="com.example.mybatisdemo02.dao"></package><!--<mapper resource="com/example/mybatisdemo/dao/PersonMapper.xml"

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/12132.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/12132.shtml
英文地址,請注明出處:http://en.pswp.cn/web/12132.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

微信加粉計數器

1.采用非注入式開發&#xff0c;支持無限多開 2.每個賬號都有獨立的分組&#xff0c;實時遠程網頁數據分享 3.后臺功能強大&#xff0c;操作簡單&#xff0c;自動去重復&#xff0c;準確計數分秒不差

Java畢業設計 基于SpringBoot vue藥店管理系統

Java畢業設計 基于SpringBoot vue藥店管理系統 SpringBoot 藥店管理系統 功能介紹 員工 登錄 個人中心 修改密碼 個人信息 查看供應商信息 查看藥品 查看進貨 查看銷售 管理員 登錄 個人中心 修改密碼 個人信息 供應商類型管理 供應商信用等級類型管理 藥品類型管理 供應商信…

不懂數字后端Box List、Polygon的意思?

什么是BOX&#xff1f; 景芯SoC做design planning的第一步就是確定floorplan的box&#xff0c;也就是設計的區域。這個區域可以劃分為三個邊界&#xff0c;如下圖所示&#xff1a; Die Box 最外面一圈&#xff0c;我們稱為 Die Box&#xff0c;也就是用來放置 IO 單元&#x…

太陽能無人機的多元化應用

隨著新能源技術的不斷發展和成熟&#xff0c;太陽能在無人機的應用技術已經成熟。太陽能無人機得到了量產和廣泛的應用。傳統無人機相比&#xff0c;太陽能無人機無需燃油&#xff0c;運行費用低廉&#xff0c;搭載多種高科技設備&#xff0c;能夠高效、多元化地采集和分析各類…

flutter 禁止橫屏設置

1.Flutter 設置 在 main 函數 加載app前添加以下代碼 SystemChrome.setPreferredOrientations([DeviceOrientation.portraitUp,DeviceOrientation.portraitDown,]) 添加后的結果 void main() async {WidgetsBinding widgetsBinding WidgetsFlutterBinding.ensureInitializ…

匯昌聯信電商:拼多多網店好做嗎?

在電子商務的海洋中&#xff0c;拼多多以其獨特的團購模式和親民策略迅速崛起&#xff0c;吸引了大批消費者和商家的目光。對于“拼多多網店好做嗎?”這個問題&#xff0c;答案并非簡單的是與否&#xff0c;而是需要從多個維度進行深入分析。 一、市場定位與競爭環境 拼多多定…

常見 Web 安全攻防總結

Web 安全的對于 Web 從業人員來說是一個非常重要的課題&#xff0c;所以在這里總結一下 Web 相關的安全攻防知識&#xff0c;希望以后不要再踩雷&#xff0c;也希望對看到這篇文章的同學有所幫助。今天這邊文章主要的內容就是分析幾種常見的攻擊的類型以及防御的方法。 也許你對…

05-10 周五 推理是什么

05-10 周五 推理是什么 時間版本修改人描述2024年5月10日10:13:54V0.1宋全恒新建文檔2024年5月13日11:08:42V1.0宋全恒填充了訓練和推理的定義&#xff0c;并且對于推理加速的方面進行了詳細的介紹 簡介 最近要坐推理時的動態量化&#xff0c;因此&#xff0c;需要認真理解一下…

獨立游戲《星塵異變》UE5 C++程序開發日志3——實現一個存存組件

本篇日志中&#xff0c;我將會介紹如何實現一個有格子&#xff0c;每個格子有容量的物品庫存&#xff0c;如下圖&#xff1a; 一.庫存容器 1.儲存數據的容器 庫存容器最重要的目的就是存儲每一種類的物品擁有的數量&#xff0c;這里我用的是哈希表&#xff1a; std::unordere…

huggingface:利用git克隆目標資源

前言 因為有很多模型資源都被放在了huggingface上&#xff0c;為了下載它們&#xff0c;著實讓一個不懂git的人犯了難&#xff0c;繞了很多遠路&#xff0c;甚至將不需要解決的問題也都拿上了臺面&#xff0c;因此我將在本篇博客中記載一些關于【huggingface】中利用git克隆目標…

【c++】全面理解C++多態:虛函數表深度剖析與實踐應用

&#x1f525;個人主頁&#xff1a;Quitecoder &#x1f525;專欄&#xff1a;c筆記倉 朋友們大家好&#xff0c;通過本篇文章&#xff0c;來詳細理解多態的內容 目錄 1.多態的定義及實現1.1多態的構成條件1.2虛函數的重寫1.3 C11 override 和 final1.4重載、覆蓋(重寫)、隱藏…

wireshark協議大致過濾規則

參考鏈接&#xff1a;真保姆鏈接 1、比較操作符 等于 &#xff01;不等于 >大于 <小于 >大于等于 <小于等于 2、協議類型 直接在Filter框中直接輸入協議名即可。注意&#xff1a;協議名稱需要輸入小寫。 tcp&#xff0c;只顯示TCP協議的數據包列表udp&#xff0c…

鴻蒙內核源碼分析 (內核啟動篇) | 從匯編到 main ()

這應該是系列篇最難寫的一篇&#xff0c;全是匯編代碼&#xff0c;需大量的底層知識&#xff0c;涉及協處理器&#xff0c;內核鏡像重定位&#xff0c;創建內核映射表&#xff0c;初始化 CPU 模式棧&#xff0c;熱啟動&#xff0c;到最后熟悉的 main() 。 內核入口 在鏈接文件…

在k8s中安裝Grafana并對接Prometheus,實現k8s集群監控數據的展示

&#x1f407;明明跟你說過&#xff1a;個人主頁 &#x1f3c5;個人專欄&#xff1a;《Grafana&#xff1a;讓數據說話的魔術師》 &#x1f3c5; &#x1f516;行路有良友&#xff0c;便是天堂&#x1f516; 目錄 一、引言 1、Grafana簡介 2、Grafana的重要性與影響力 …

強化訓練:day9(添加逗號、跳臺階、撲克牌順子)

文章目錄 前言1. 添加逗號1.1 題目描述2.2 解題思路2.3 代碼實現 2. 跳臺階2.1 題目描述2.2 解題思路2.3 代碼實現 3. 撲克牌順子3.1 題目描述3.2 解題思路3.3 代碼實現 總結 前言 1. 添加逗號 ??2. 跳臺階 ??3. 撲克牌順子 1. 添加逗號 1.1 題目描述 2.2 解題思路 我的寫…

【Vue】vue中動態樣式綁定

在Vue中&#xff0c;可以使用動態樣式綁定來根據數據的變化來動態修改元素的樣式。動態樣式綁定可以通過以下幾種方式實現&#xff1a; 對象語法 <template><div :style"dynamicStyles"></div> </template><script> export default {…

STM32學習和實踐筆記(28):printf重定向實驗

1.printf重定向簡介 在C語言中printf函數里&#xff0c;默認輸出設備是顯示器&#xff0c;如果想要用這個函數將輸出結果到串口或者LCD上顯示&#xff0c;就必須重定義標準庫函數里中printf函數調用的與輸出設備相關的函數。 比如要使用printf輸出到串口&#xff0c;需要先將f…

linux 任務管理(臨時任務定時任務) 實驗

目錄 任務管理臨時任務管理周期任務管理 任務管理 臨時任務管理 執行如下命令添加單次任務&#xff0c;輸入完成后按組合鍵Ctrl-D。 [rootopenEuler ~]# at now5min warning: commands will be executed using /bin/sh at> echo "aaa" >> /tmp/at.log at&g…

什么是 PL/SQL

PL/SQL 是 Oracle 公司開發的一種過程化擴展 SQL 語言&#xff0c;它結合了 SQL 語句和過程化編程的特點&#xff0c;允許開發者在一個塊&#xff08;block&#xff09;中編寫聲明、條件語句、循環等&#xff0c;使得數據庫編程更加靈活和強大。PL/SQL 常用于 Oracle 數據庫系統…

bash腳本 報錯:/bin/bash^M:解釋器錯誤: 沒有那個文件或目錄

bash腳本 報錯&#xff1a;/bin/bash^M&#xff1a;解釋器錯誤: 沒有那個文件或目錄 出現這個問題是因為該腳本文件在windows下編輯過 在windows下&#xff0c;每一行的結尾是\n\r&#xff0c;而在linux下文件的結尾是\n&#xff0c;那么你在windows下編輯過的文件在linux下打…