读写mp3,flac等音乐文件媒体信息_.net 获取flac音乐流-程序员宅基地

技术标签: Java  mp3  媒体文件  java  flac  音乐文件  

读写mp3,flac等音乐文件媒体信息

需要的库下载

audio.jar
jaudiotagger-2.2.6-SNAPSHOT.jar
jl1.0.1.jar
jmf.jar
sound.jar

读属性
MP3File mp3File = (MP3File) AudioFileIO.read(new File("/Users/wujieyuan/Music/QQ音乐/王力宏-大城小爱.mp3"));
MP3AudioHeader audioHeader = (MP3AudioHeader) mp3File.getAudioHeader();

String songname = mp3File.getID3v2Tag().frameMap.get("TIT2").toString();//歌名
String artist = mp3File.getID3v2Tag().frameMap.get("TPE1").toString();//歌手
String album = mp3File.getID3v2Tag().frameMap.get("TALB").toString();//专辑
int duration = audioHeader.getTrackLength();//时长

Path flacPath = Paths.get("/Volumes/music/洛雪音乐助手/东西 - 林俊呈.flac");
FlacInfoReader reader=new FlacInfoReader();
FlacAudioHeader flacAudioHeader = reader.read(flacPath);
System.out.println(flacAudioHeader.toString());

FlacTagReader flacTagReader=new FlacTagReader();
FlacTag flacTag = flacTagReader.read(flacPath);
System.out.println(flacTag.toString())
写属性
File dir = new File("/Volumes/music/洛雪音乐助手");
for (File file : dir.listFiles()) {
    if (file.getName().endsWith(".flac")) {
        String[] strings = file.getName().replace(" ", "").split("-");
        String musicName = strings[0];
        String userName = strings[1].replace(".flac", "");

        Path flacPath = Paths.get(file.getPath());
        FlacTagReader flacTagReader = new FlacTagReader();
        FlacTag flacTag = flacTagReader.read(flacPath);

        String ARTIST = null;
        VorbisCommentTag vorbisCommentTag = flacTag.getVorbisCommentTag();
        Iterator<TagField> fields = vorbisCommentTag.getFields();
        while (fields.hasNext()) {
            TagField field = (TagField) fields.next();
            if ("ARTIST".equals(field.getId())) {
                ARTIST = field.toString();
                break;
            }
        }
        if(ARTIST!=null&&"kuwo".equals(ARTIST)){
            FlacTagWriter flacTagWriter=new FlacTagWriter();
            flacTag.setField("ARTIST",userName);
            flacTag.setField("TITLE",musicName);
            flacTagWriter.write(flacTag,flacPath);
            System.out.println("编辑文件:"+file.getName());
        }
    }
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/wjy849111934/article/details/103316985

智能推荐

设计芯片的EDA软件_芯片eda-程序员宅基地

文章浏览阅读1.4k次。总的来说,目前国内外有很多优秀的EDA软件供应商,如Synopsys、Cadence和Mentor等国际大厂,以及华大九天、概伦电子等国内领先企业。这些EDA软件涵盖了电路设计、物理验证等多个方面,可根据不同需求进行选择。_芯片eda

mootools_MooTools 1.3到了!-程序员宅基地

文章浏览阅读125次。mootoolsAfter a year of hard work, listening to the MooTools community's needs, and some more hard work, the MooTools team is proud to release MooTools 1.3! Below is a summary of what's awesome i..._mootools-core-1.3.2.js

探秘 Sougou_dict_spider:一款强大的搜狗词典爬虫工具-程序员宅基地

文章浏览阅读365次,点赞3次,收藏6次。探秘 Sougou_dict_spider:一款强大的搜狗词典爬虫工具项目地址:https://gitcode.com/StuPeter/Sougou_dict_spider项目简介Sougou_dict_spider 是一个开源项目,由 StuPeter 开发,旨在帮助用户自动化地抓取搜狗字典中的词汇释义、例句和相关数据。如果你是一位语言学习者、程序员或者对自然语言处理感兴趣,这个项目将提..._全量爬取搜狗词库

C# 实现锁屏_锁屏scancode-程序员宅基地

文章浏览阅读8.1k次,点赞9次,收藏28次。首先,将窗体的FormBorderStyle设置为none,WindowState设为Maximized 让窗体占据整个页面。form窗体代码:using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;us_锁屏scancode

apex安装、解决ModuleNotFoundError: No module named ‘amp_C‘报错_modulenotfounderror: no module named 'amp_c-程序员宅基地

文章浏览阅读3.6k次。简要说明:在论文代码复现的过程中,环境要求是要安装torch的版本是1.4.0 但是当安装好之后,会报错,提示你torch版本过低,要不然安装1.6以上,要不然安装 NVIDIA apex想都不用想,当然安装apex(害怕安装了高版本的torch会有其他错误,尽量避免)apex安装方法:git clone https://github.com/NVIDIA/apexcd apexpython3 setup.py install安装好之后运行代码,报错:ModuleNotFoundError:_modulenotfounderror: no module named 'amp_c

Arduino ESP32 获取网络时间方法_arduino获取网络时间-程序员宅基地

文章浏览阅读1.1w次,点赞27次,收藏155次。Arduino ESP32 获取网络时间并同步本地RTC时钟相关篇《Arduino ESP32 最简单直接获取网络时间方法》在 ArduinoESP32核心支持库当中已经包含相关的获取时间的库,获取网络时间后,就可以不依赖网络,重复去获取时间,如果长时间运行,可以设置间隔时间同步NTP时间,只要访问本地时间的相关函数能正常调用,就没有问题。调试了一天,掉坑里去了,在访问本地时间的时候,有些看是不重要的细节,往往很容易掉到坑里去。最容易掉坑的地方!在获取本地时间的时候,一定要先判断一_arduino获取网络时间

随便推点

saltstack_saltstack if-程序员宅基地

文章浏览阅读407次。开三台rhel6.5的虚拟机 server1 172.25.66.1 master server2 172.25.66.2 minion server3 172.25.66.3 minion1.安装软件搭建salt软件仓库(把整个目录放在apache下)配置repo文件[salt]name=saltbaseurl=http://172.25.66.1..._saltstack if

软件测试学习笔记丨MongoDB 数据库-程序员宅基地

文章浏览阅读734次,点赞17次,收藏19次。本文转自测试人社区,原文链接:https://ceshiren.com/t/topic/29854。

ffmpeg命令大全(音视频拆分、倒放、拼接、绿幕变透明、位置截取)_ffmpeg 倒放-程序员宅基地

文章浏览阅读1.8k次。构建倒放命令ffmpeg -i input.mp4 -vf reverse -af areverse -preset superfast output.mp4。_ffmpeg 倒放

CNN_hellowindows.cnn-程序员宅基地

文章浏览阅读334次。非常的一个CNN的介绍视频:youtube上非常好的一个CNN视频(B站)B站某up主根据这个视频,进行了中文版的讲解以下内容单纯用于自我阅读,不一定适合理解,建议为了了解CNN而来的朋友还是去看上面的视频。简单来说,CNN就是,先卷积再用激活函数抹零,(这两个基本上会绑定在一起),和池化这两种手段组成。可以卷积抹零,卷积抹零,再池化,也可以,卷积抹零,池化,卷积抹零。这两种手段的结合,最终生成的图,其中每一个值,都是全连接层的输入值,或者也可以叫特征。我们可以运用不同的卷积核,来完成这样的步骤,_hellowindows.cnn

Android Studio更换背景图片_androidstudio换背景图片-程序员宅基地

文章浏览阅读7.2k次,点赞5次,收藏6次。Android Studio(以下语句中都简称为AS)在老版本的时候没有自带的更换背景图的功能,那时候写过一篇文章,更换背景图的。https://blog.csdn.net/albb_/article/details/80925943现在AS升级了之后,有了自带的功能,而且很溜的是文件夹列表都一并给你背景更换了。刚刚网上搜了一下使用的方法,很多文章还是使用的原来的老方法,在此,我今天做一个新的更新。第一步,打开AS的设置。因为我使用的是Mac版本的AS,所以是在Preferences.如果是wi_androidstudio换背景图片

vue跟html5有关,vue与html5关系_vue和html的关系-程序员宅基地

文章浏览阅读7.9k次,点赞6次,收藏30次。介绍要想了解vue与HTML5的关系,首先我们得清楚什么是vue,什么是HTML5,只有通过对它们有个大致的概念,才会对它们之间的联系有一个清楚的认识和理解。下面就从vue和HTML5的基本概念入手分析一下它们之间的基本关系。1.什么是vue?Vue 是一套用于构建用户界面的渐进式 JavaScript框架;同时它是一个典型的 MVVM 模型的框架(即:视图层-视图模型层-模型层)。2.MVVM模型又是什么?MVVM 是View-ViewModel-Model的缩写(即:视图层..._vue和html的关系

推荐文章

热门文章

相关标签