分类 小记 下的文章 - 第 5 页 - 空痕博客 - 编程学习分享
首页
小记
php
python
uniapp
前端
其他
机器人
QQ机器人
项目
功能库
应用
其他页面
友情链接
用户留言
联系空痕
热门文章
PHP搭建QQ机器人(QQ官方)
下载文件到指定文件夹
解决三个导致 Google Antigravity 无法登录的问题
UTS引用原生jar包进行原生插件开发
上传文件到夸克网盘python代码
标签搜索
python
uniapp
PHP
VUE
UTS
uniapp-x
模板
夸克网盘
html
移动云盘
APP
KongHen
机器人
QQ
ID3
pyinstaller
redis
Echarts
邮箱
js
发布
登录
注册
找到
22
篇与
小记
相关的结果
- 第 5 页
2024-04-29
UTS引用原生jar包进行原生插件开发
也是踩了很多坑。主要的坑有两个,一个是引入jar包的问题,另一个就是jar包的使用问题(这个还得看包的文档 :@(吐血倒地) ) 下载jar包 我要用的是jaudiotagger包,引来实现对音乐标签信息的修改,包下载地址:https://central.sonatype.com/artifact/net.jthink/jaudiotagger/versions 我用的是最新的3.0.1版本,下载图中这个 lvkwkzpv.png图片 创建插件 下面是步骤: 创建插件参考官方教程步骤,这个很详细 地址: https://doc.dcloud.net.cn/uni-app-x/plugin/uts-plugin.html#%E5%88%9B%E5%BB%BAuts%E6%8F%92%E4%BB%B6 引入jar包 将你下载的jar包移动到libs目录下,如图 lvkwqa8k.png图片 导入包中的方法 java导入的方法 import org.jaudiotagger.audio.flac.FlacFile; import org.jaudiotagger.audio.generic.AudioFile; import org.jaudiotagger.audio.generic.AudioFileIO; import org.jaudiotagger.tag.FieldKey; import org.jaudiotagger.tag.Tag; import org.jaudiotagger.tag.images.Artwork;ts导入的方法 import FlacFile from "org.jaudiotagger.audio.flac.FlacFile"; import AudioFile from "org.jaudiotagger.audio.generic.AudioFile"; import AudioFileIO from "org.jaudiotagger.audio.generic.AudioFileIO"; import FieldKey from "org.jaudiotagger.tag.FieldKey"; import Tag from "org.jaudiotagger.tag.Tag"; import Artwork from "org.jaudiotagger.tag.images.Artwork";就这样导入就可以了,在Hbuilderx中,有代码提示,也可以不自己导入,写完代码,点击代码提示,又自动修复功能,当然,自动修复导入的不完全正确。 使用方法 测试的时候要打包自定义基座进行测试 使用的话,导入后就当ts方法写就行 有些报错是编译器bug不用管 // 引入java文件类 import File from "java.io.File"; import Files from "java.nio.file.Files"; // 引入jaudiotagger包 import AudioFile from "org.jaudiotagger.audio.AudioFile"; import AudioFileIO from "org.jaudiotagger.audio.AudioFileIO"; // import { Tag, FieldKey } from "org.jaudiotagger.tag"; import Tag from "org.jaudiotagger.tag.Tag"; import FieldKey from "org.jaudiotagger.tag.FieldKey"; // mp3封面相关 import StandardArtwork from "org.jaudiotagger.tag.images.StandardArtwork"; // falc封面相关 import FlacTag from "org.jaudiotagger.tag.flac.FlacTag"; import FileInputStream from "java.io.FileInputStream"; import PictureTypes from "org.jaudiotagger.tag.reference.PictureTypes"; /** * MusicInfo * 音乐信息类型 * */ type Tags = { audio: string; title: string; artist: string; album: string; cover: string; } export class KhMusicTag { /** * 私有变量 * tags { Tags } 标签信息 * action { boolean[] } 封面图片路径 * */ /** * writeMp3Tag * 写入mp3的封面图 * @param { string } cover 封面图路径 * * @returns { Boolean} 返回写入结果 */ public writeMp3Tag(info: Tags): boolean { try { // 读取音频文件 const audioFile = AudioFileIO.read(new File(info.audio)); const mp3Tag: Tag = audioFile.getTagOrCreateAndSetDefault(); // 设置歌曲名,歌手名,专辑名 mp3Tag.setField(FieldKey.TITLE, info.title); mp3Tag.setField(FieldKey.ARTIST, info.artist); mp3Tag.setField(FieldKey.ALBUM, info.album); // 创建封面图实例 const coverImage: File = new File(info.cover); // 创建Artwork对象 const artwork: StandardArtwork = new StandardArtwork(); artwork.setBinaryData(Files.readAllBytes(coverImage.toPath())); artwork.setMimeType("image/jpg"); // 根据实际封面图片类型设置 artwork.setPictureType(3); // 删除旧的封面图 mp3Tag.deleteArtworkField(); // 写入封面图 mp3Tag.setField(artwork); // 写回文件 audioFile.commit(); return true; } catch(e) { return false; } } /** * writeFlacCover * 写入flac的封面图 * @param { Tags } info 标签信息 * * @returns { Boolean} 返回写入结果 */ public writeFlacTag(info: Tags): boolean { try { // 读取flac文件,并强制申明为FlacTag类型 const audioFile = AudioFileIO.read(new File(info.audio)); const flacTag = audioFile.getTag() as FlacTag; // 设置歌曲名,歌flac手名,专辑名 flacTag.setField(FieldKey.TITLE, info.title); flacTag.setField(FieldKey.ARTIST, info.artist); flacTag.setField(FieldKey.ALBUM, info.album); // 读取封面图为字节流 const imageFile: FileInputStream = new FileInputStream(info.cover); const imagedata: ByteArray = new ByteArray(imageFile.available()); imageFile.read(imagedata); // 写入封面图 flacTag.setField(flacTag.createArtworkField(imagedata, PictureTypes.DEFAULT_ID, "image/jpg", "KHMD", 200, 200, 24, 0)); // 写回文件 audioFile.commit(); return true; } catch (e) { return false; } } }参考文献: 依据于开源的java库jaudiotagger 地址:https://bitbucket.org/ijabz/jaudiotagger/src/master/ 文档:http://jthink.net/jaudiotagger/index.jsp 成品jar包下载地址:https://central.sonatype.com/artifact/net.jthink/jaudiotagger/versions 说明:建议查看源码中的testsrc中的示例,个人觉得比文档中的示例详细和有用
uni
安卓
# uniapp
# UTS
# ID3
KongHen02
1年前
2
571
1
2023-12-11
下载文件到指定文件夹
uniapp使用plus.downloader方法自定义下载文件存储位置
uniapp
# uniapp
# APP
KongHen02
2年前
0
654
2
上一页
1
...
4
5
易航博客