如何合并两首.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

相关文章

MySQL 中查询 VARCHAR 类型 JSON 数据的问题记录

《MySQL中查询VARCHAR类型JSON数据的问题记录》在数据库设计中,有时我们会将JSON数据存储在VARCHAR或TEXT类型字段中,本文将详细介绍如何在MySQL中有效查询存储为V... 目录一、问题背景二、mysql jsON 函数2.1 常用 JSON 函数三、查询示例3.1 基本查询3.2

如何解决mmcv无法安装或安装之后报错问题

《如何解决mmcv无法安装或安装之后报错问题》:本文主要介绍如何解决mmcv无法安装或安装之后报错问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录mmcv无法安装或安装之后报错问题1.当我们运行YOwww.chinasem.cnLO时遇到2.找到下图所示这里3.

Pydantic中Optional 和Union类型的使用

《Pydantic中Optional和Union类型的使用》本文主要介绍了Pydantic中Optional和Union类型的使用,这两者在处理可选字段和多类型字段时尤为重要,文中通过示例代码介绍的... 目录简介Optional 类型Union 类型Optional 和 Union 的组合总结简介Pyd

Oracle数据库常见字段类型大全以及超详细解析

《Oracle数据库常见字段类型大全以及超详细解析》在Oracle数据库中查询特定表的字段个数通常需要使用SQL语句来完成,:本文主要介绍Oracle数据库常见字段类型大全以及超详细解析,文中通过... 目录前言一、字符类型(Character)1、CHAR:定长字符数据类型2、VARCHAR2:变长字符数

用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.