如何合并两首.mp3类型的歌或者截取一首.mp3类型歌曲中的一段,例如跳过歌曲的前10s,截取紧接着之后的20s那一部分然后播放??

本文主要是介绍如何合并两首.mp3类型的歌或者截取一首.mp3类型歌曲中的一段,例如跳过歌曲的前10s,截取紧接着之后的20s那一部分然后播放??,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

  1. 编写一个程序将多首mp3歌曲合并成一个mp3文件。

以下演示将 D:\Program Files\CloudMusic\music\G.E.M.邓紫棋 - 来自天堂的魔鬼.mp3 和D:\Program Files\CloudMusic\music\张紫豪 - 可不可以.mp3 这两首歌合并后放入D:\demo\邓紫棋_张紫豪_合集.mp3

先看demo文件夹:
在这里插入图片描述

package ex.ex_字节流.ex_11;import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;/*** @author yyh on 2020/4/18 21:15*/
public class FileTest11 {public static void main(String[] args) {try (FileInputStream in = new FileInputStream("D:\\Program Files\\CloudMusic\\music\\G.E.M.邓紫棋 - 来自天堂的魔鬼.mp3");FileInputStream in2 = new FileInputStream("D:\\Program Files\\CloudMusic\\music\\张紫豪 - 可不可以.mp3");FileOutputStream out = new FileOutputStream("D:\\demo\\邓紫棋_张紫豪_合集.mp3")) {byte[] bytes = new byte[1024*1024];//每次读入1Mbint length = -1;while ((length = in.read(bytes)) != -1) {out.write(bytes, 0, length);}byte[] bytes2 = new byte[1024*1024];//每次读入1Mblength = -1;while ((length = in2.read(bytes2)) != -1) {out.write(bytes2, 0, length);}System.out.println("读写完成!" );} catch (FileNotFoundException e) {e.printStackTrace( );} catch (IOException e) {e.printStackTrace( );}}
}

运行后,再看一下demo文件夹:
在这里插入图片描述
合并成功,点击合集.mp3即可播放这两首歌…

12.如何截取一个MP3文件的一段音频,从此MP3文件的10秒处开始截取,截取紧接着之后20秒内的一段音频?

首先,要知道一下这首歌的码率是多少
以接下来要演示的这首歌 “张紫豪 - 可不可以.mp3” 为例:
如图所示,
在这里插入图片描述
它的码率是320kbps,而320kbps = 40kByte/s
所以1s的时长为:40kByte = 40 * 1024 Byte = 40960 Byte
10s的时长为:40960 * 10 byte
20s的时长为:40960 * 20 byte

以下代码表示将 D:\Program Files\CloudMusic\music\张紫豪 - 可不可以.mp3 这首歌截取一段到 D:\demo\张紫豪 - 可不可以.mp3_截20秒.mp3 ,然后看demo文件夹下是否有这首歌,然后播放看看是否有20s。

package ex.ex_字节流.ex_12;import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;/*** @author yyh on 2020/4/19 20:27*/
public class FileTest12 {public static void main(String[] args) {try(FileInputStream in = new FileInputStream("D:\\Program Files\\CloudMusic\\music\\张紫豪 - 可不可以.mp3");FileOutputStream cutout = new FileOutputStream("D:\\demo\\张紫豪 - 可不可以.mp3_截20秒.mp3");){in.skip(40*1024*10);//跳过mp3的前10sbyte[] bytes = new byte[40*1024*20];int length = -1;if ((length = in.read(bytes)) != -1) {cutout.write(bytes,0,length);}System.out.println("截取成功!" );} catch (FileNotFoundException e) {e.printStackTrace( );} catch (IOException e) {e.printStackTrace( );}}
}

运行后:
在这里插入图片描述
欧克了,嘿嘿,点击那个mp3文件就可以播放了,只有20s哦,多一秒都不行哈,嘻嘻

这篇关于如何合并两首.mp3类型的歌或者截取一首.mp3类型歌曲中的一段,例如跳过歌曲的前10s,截取紧接着之后的20s那一部分然后播放??的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/332151

相关文章

用js控制视频播放进度基本示例代码

《用js控制视频播放进度基本示例代码》写前端的时候,很多的时候是需要支持要网页视频播放的功能,下面这篇文章主要给大家介绍了关于用js控制视频播放进度的相关资料,文中通过代码介绍的非常详细,需要的朋友可... 目录前言html部分:JavaScript部分:注意:总结前言在javascript中控制视频播放

Spring Boot 配置文件之类型、加载顺序与最佳实践记录

《SpringBoot配置文件之类型、加载顺序与最佳实践记录》SpringBoot的配置文件是灵活且强大的工具,通过合理的配置管理,可以让应用开发和部署更加高效,无论是简单的属性配置,还是复杂... 目录Spring Boot 配置文件详解一、Spring Boot 配置文件类型1.1 applicatio

Python+PyQt5实现多屏幕协同播放功能

《Python+PyQt5实现多屏幕协同播放功能》在现代会议展示、数字广告、展览展示等场景中,多屏幕协同播放已成为刚需,下面我们就来看看如何利用Python和PyQt5开发一套功能强大的跨屏播控系统吧... 目录一、项目概述:突破传统播放限制二、核心技术解析2.1 多屏管理机制2.2 播放引擎设计2.3 专

使用Python实现文本转语音(TTS)并播放音频

《使用Python实现文本转语音(TTS)并播放音频》在开发涉及语音交互或需要语音提示的应用时,文本转语音(TTS)技术是一个非常实用的工具,下面我们来看看如何使用gTTS和playsound库将文本... 目录什么是 gTTS 和 playsound安装依赖库实现步骤 1. 导入库2. 定义文本和语言 3

Python实现合并与拆分多个PDF文档中的指定页

《Python实现合并与拆分多个PDF文档中的指定页》这篇文章主要为大家详细介绍了如何使用Python实现将多个PDF文档中的指定页合并生成新的PDF以及拆分PDF,感兴趣的小伙伴可以参考一下... 安装所需要的库pip install PyPDF2 -i https://pypi.tuna.tsingh

Python如何查看数据的类型

《Python如何查看数据的类型》:本文主要介绍Python如何查看数据的类型方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录python查看数据的类型1. 使用 type()2. 使用 isinstance()3. 检查对象的 __class__ 属性4.

Python容器类型之列表/字典/元组/集合方式

《Python容器类型之列表/字典/元组/集合方式》:本文主要介绍Python容器类型之列表/字典/元组/集合方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录1. 列表(List) - 有序可变序列1.1 基本特性1.2 核心操作1.3 应用场景2. 字典(D

Python如何在Word中生成多种不同类型的图表

《Python如何在Word中生成多种不同类型的图表》Word文档中插入图表不仅能直观呈现数据,还能提升文档的可读性和专业性,本文将介绍如何使用Python在Word文档中创建和自定义各种图表,需要的... 目录在Word中创建柱形图在Word中创建条形图在Word中创建折线图在Word中创建饼图在Word

SpringBoot接收JSON类型的参数方式

《SpringBoot接收JSON类型的参数方式》:本文主要介绍SpringBoot接收JSON类型的参数方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、jsON二、代码准备三、Apifox操作总结一、JSON在学习前端技术时,我们有讲到过JSON,而在

使用Apache POI在Java中实现Excel单元格的合并

《使用ApachePOI在Java中实现Excel单元格的合并》在日常工作中,Excel是一个不可或缺的工具,尤其是在处理大量数据时,本文将介绍如何使用ApachePOI库在Java中实现Excel... 目录工具类介绍工具类代码调用示例依赖配置总结在日常工作中,Excel 是一个不可或缺的工http://