java获取音频长度(java 获取视频时长)

今天给各位分享java获取音频长度的知识,其中也会对java 获取视频时长进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!

本文目录一览:

1、通过输入设备获取音频流 原理或java实现2、用Java如何得到mp3的属性3、用java代码将两段音频拼成一段4、java js前端请求后台去获得音频流,然后播放音乐,音乐可以控制进度,显示总时长5、java怎样把一个音频文件读到一个数组中6、java如何实现从视频中提取音频??????

通过输入设备获取音频流 原理或java实现

主要的功能模块在两个程序包中提供:

javax.media.sound.sampled-该程序包明确地说明了捕获、混合以及回播数字采样音频的界面。

javax.media.sound.MIDI-该程序包提供MIDI合成、序列化以及事件传送的界面。

代码如下;

import java.io.*; import javax.sound.sampled.*; import java.net.*; /** * Title: VoiceChat * Description: 输出音频(放音程序)* Copyright: Copyright (c) 2001 * Company: * @author 你猜!* @version 1.0 */ class Playback implements Runnable { final int bufSize = 16384; SourceDataLine line; Thread thread; Socket s; Playback(Socket s){//构造器 取得socket以获得网络输入流 this.s=s; }

public void start()

代码和详细解释太长,你给个邮箱,我给你发过去

用Java如何得到mp3的属性

package mp3;

import java.io.File;

import java.io.FileNotFoundException;

import java.io.IOException;

import java.io.RandomAccessFile;

public class ReadMp3 {

private SongInfo info = null;

private RandomAccessFile ran = null;

private File file = null;

public ReadMp3() throws FileNotFoundException {

file = new File(“./rec/感觉不到你.mp3”);

ran = new RandomAccessFile(file, “r”);

System.out.println(“文件装载完毕”);

}

public static void main(String[] args) throws IOException {

ReadMp3 read = new ReadMp3();

byte[] buffer = new byte[128];

read.ran.seek(read.ran.length() – 128);

read.ran.read(buffer);

SongInfo info = new SongInfo(buffer);

System.out.println(“name:” + info.getSongName() + ” year:”

+ info.getYear() + ” 歌手:” + info.getArtist() + ” 专辑名:”

+ info.getAlbum() + ” 备注:” + info.getComment());

}

}

package mp3;

/**

* 一个歌曲信息的类的结构表示 这个歌曲是使用ID3V1的信息存储结构的

*

* @author hadeslee

*/

public class SongInfo {

private final String TAG = “TAG”; // 文件头1-3

private String songName; // 歌曲名4-33

private String artist; // 歌手名34-63

private String album; // 专辑名61-93

private String year; // 年94-97

private String comment; // 备注98-125

private byte r1, r2, r3; // 三个保留位126,127,128

private boolean valid; // 是否合法

public transient String fileName; // 此歌曲对应的文件名,没有封装

public SongInfo(byte[] data) {

if (data.length != 128) {

throw new RuntimeException(“数据长度不合法:” + data.length);

}

String tag = new String(data, 0, 3);

// 只有前三个字节是TAG才处理后面的字节

if (tag.equalsIgnoreCase(“TAG”)) {

valid = true;

songName = new String(data, 3, 30).trim();

artist = new String(data, 33, 30).trim();

album = new String(data, 63, 30).trim();

year = new String(data, 93, 4).trim();

comment = new String(data, 97, 28).trim();

r1 = data[125];

r2 = data[126];

r3 = data[127];

} else {

valid = false;

}

}

public SongInfo() {

}

/**

* 返回是否合法

*

* @return 是否

*/

public boolean isValid() {

return valid;

}

/**

* 得到此对象的128个字节的表示形式

*

* @return

*/

public byte[] getBytes() {

byte[] data = new byte[128];

System.arraycopy(TAG.getBytes(), 0, data, 0, 3);

byte[] temp = songName.getBytes();

System.arraycopy(temp, 0, data, 3, temp.length 30 ? 30 : temp.length);

temp = artist.getBytes();

System

.arraycopy(temp, 0, data, 33, temp.length 30 ? 30

: temp.length);

temp = album.getBytes();

System

.arraycopy(temp, 0, data, 63, temp.length 30 ? 30

: temp.length);

temp = year.getBytes();

System.arraycopy(temp, 0, data, 93, temp.length 4 ? 4 : temp.length);

temp = comment.getBytes();

System

.arraycopy(temp, 0, data, 97, temp.length 28 ? 28

: temp.length);

data[125] = r1;

data[126] = r2;

data[127] = r3;

return data;

}

public String getArtist() {

return artist;

}

public void setArtist(String authorName) {

this.artist = authorName;

}

public String getComment() {

return comment;

}

public void setComment(String comment) {

this.comment = comment;

}

public byte getR1() {

return r1;

}

public void setR1(byte r1) {

this.r1 = r1;

}

public byte getR2() {

return r2;

}

public void setR2(byte r2) {

this.r2 = r2;

}

public byte getR3() {

return r3;

}

public void setR3(byte r3) {

this.r3 = r3;

}

public String getSongName() {

return songName;

}

public void setSongName(String songName) {

if (songName == null) {

throw new NullPointerException(“歌名不能是null!”);

}

valid = true;

this.songName = songName;

}

public String getAlbum() {

return album;

}

public void setAlbum(String specialName) {

this.album = specialName;

}

public String getYear() {

return year;

}

public void setYear(String year) {

this.year = year;

}

}

java获取音频长度(java 获取视频时长)

用java代码将两段音频拼成一段

用io流吧 使用字节流 把两个文件先后读取然后存放到一个文件中就可以了

使用ByteArrayInputStream流对象来读取数据

使用ByteArrayOutputStream流对象来写数据

java js前端请求后台去获得音频流,然后播放音乐,音乐可以控制进度,显示总时长

AudioCLip主要的方法有:play()播放依次声音;loop()循环播放音乐;stop()停止播放。做法一:InputStreamis=null;AudioStreamas=null;is=getClass().getResourceAsStream(“a.wav”);try{as=newAudioStream(is);}catch(IOExceptione){}AudioPlayer.player.start(as);此方法将音乐文件放入流中在播放,仅限于JavaApplication,容易报错,空指针异常,或者是流异常,不推荐。做法二:Stringmusic=”a.wav”;AudioClipclip=Applet.newAudioClip(getClass().getResource(music));次方法在Applet中运行没有问题,但是Application中getclass()会返回空指针,导致失败。推荐做法:privateURLurl;privateAudioClipac;Filef1=newFile(“C:/3.wav”);try{url=f1.toURL();}catch(MalformedURLExceptione){//TODOAuto-generatedcatchblocke.printStackTrace();}ac=Applet.newAudioClip(cb1);ac.play();

java怎样把一个音频文件读到一个数组中

// 直接给一个只读一行的吧,呵呵,数字之间以空格来分隔

public static void main(String[] args) throws Exception {

File file = new File(“src/test.txt”);

double[] a = getLineFromTxt(file,” “);

for(int i = 0; i a.length; i++){

System.out.println(“a[“+i+”] = “+a[i]);

}

}

test中的数据以空格隔开 12 32 32.02

public static double[] getLineFromTxt(File file, String split) throws Exception{

BufferedReader br = new BufferedReader(new FileReader(file));

String firstLine = br.readLine(); //就读第一行哦

String[] arrs = firstLine.split(” “);

//将字符数组转为double数组

double[] arr = new double[arrs.length];

for(int i = 0; i arr.length; i++){

arr[i] = Double.parseDouble(arrs[i]);

}

java如何实现从视频中提取音频??????

1.你可以播放视频,然后java软件录制。

2.研究视频的编码格式,提取视频中包含的声音信息。java编码提取。没中视频格式都要具体分析。

3.有视频处理软件,直接提取。

java获取音频长度的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于java 获取视频时长、java获取音频长度的信息别忘了在本站进行查找喔。

本文来自投稿,不代表【】观点,发布者:【

本文地址: ,如若转载,请注明出处!

举报投诉邮箱:253000106@qq.com

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2024年4月1日 00:18:41
下一篇 2024年4月1日 00:28:05

相关推荐

  • java截取指定长度字符串,java截取指定字符串之后的

    java中如何截取字符串中的指定一部分 第一个参数是开始截取的字符位置。(从0开始)第二个参数是结束字符的位置+1。(从0开始)indexof函数的作用是查找该字符串中的某个字的位置,并且返回。 int end);截取s中从begin开始至end结束时的字符串,并将其赋值给s;split讲解:java.lang.string.split split 方法 将…

    2024年5月23日
    4200
  • linux查看ssh连接时长,linux查看ssh服务命令

    如何查看linux上的ssh服务是否正常 netstat -a | more看有没正常启动。如果出现:tcp 0 0 *:ssh *:* LISTEN就说明正常启动了;若能成功远程登入,则说明SSH服务安装配置成功。 查询系统是否开启了ssh服务,若没有开启,尝试执行 /etc/init.d/ssh start命令,若没有该命令则表明没有安装openssh-…

    2024年5月23日
    4300
  • c语言int数组长度,c语言求int数组长度

    求教:C语言中如何求任意一个int型数组的长度 1、因为数组中每个元素的类型都是一样的,在内存中所占的字节数都是相同的,所以总的字节数除以一个元素所占的字节数就是数组的长度。 2、求长度通常是strlen和sizeof下面是他俩的区别帮助你知道sizeof操作符的结果类型是size_t,它在头文件中typedef为unsigned int类型。该类型保证能容…

    2024年5月23日
    5100
  • 三角形两边一角求面积c语言,三角形三边长度求面积

    C语言:求三角形的面积 C语言:输入三角形三条边的边长,并输出面积:首先打开我们的DEV C++软件,点击“新建源代码”。 c语言编程求三角形面积公式的步骤如下:首先我们先声明若干个变量,分别用它们来表示三角形的边长和面积等。然后我们使用scanf()函数从键盘敲入边长。应用题目中的公式进行面积的求解。打印输出相应的三角形面积。 c语言求三角形面积:输入三个…

    2024年5月23日
    4400
  • java获取mp3的时长的简单介绍

    java中如何获取音频(mp3)长度 采样率。压缩格式。基本上就跟这俩东西有关了。有了这个以后,可以根据文件的大小来计算播放时长。至于具体的,我也没算过。我觉得你可以cut一段音乐,比如wma格式的,看看一分钟是多大。 而且微软似乎没有打算修复这个问题,解决方法只能改用别的播放内核。MCI只有在获取可变码率的音频文件的长度时才会出现不准确的情况。能够过观察发…

    2024年5月22日
    3800
  • javascript对象长度,javascript数组长度

    判断map对象长度 你首先设定一个投影坐标系,然后看图层的属性表,里面有Length一项。 在arcmap窗口的“tools”工具条上面有个小尺子上面带两个相反箭头的图标的工具,就是测量工具。不过你的地图窗口要有单位设置,这个工具才能被激活。 没有长度限制。map可以根据新增的key-value动态的伸缩,因此它不存在固定长度或者最大限制,但是也可以选择标明…

    2024年5月22日
    4300
  • java循环队列长度计算,java循环队列queue

    循环队列长度的计算公式是怎么得出来的,能具体推导一下吗 所以,我们定义循环队列中空出一个位置为满队列状态。front指向头元素,rear指向尾元素的下一个位置。 由于rear,front均为所用空间的指针,循环只是逻辑上的循环,所以需要求余运算。 另外,当rear front时,此时队列的长度为rear—front。 计算队列的元素个数:(尾-头+表长)%表…

    2024年5月22日
    4600
  • c语言数组长度,c语言数组长度函数length

    C语言,关于求数组长度的问题! 1、c语言中,定义数组后可以用sizeof命令获得数组的长度(可容纳元素个数)。 2、因为数组中每个元素的类型都是一样的,在内存中所占的字节数都是相同的,所以总的字节数除以一个元素所占的字节数就是数组的长度。 3、C语言中,定义数组后可以用sizeof命令获得数组的长度(即可容纳元素个数)。但是通过传递数组名参数到子函数中,以…

    2024年5月22日
    4300
  • excel取列长度,excel怎么提取列里面的数值并求和

    excel怎么选择很长的一列 1、Excel表格选中一列很长数据的方法 打开表格,此处以一个有100行的表格为例,点击表格最左上方的单元格。同时按住键盘上“ctrl”“shift”“↓”按键,就可以看到,表格中这一列的所有数据都被选中了。 2、Excel表格选中整列的快捷键是Ctrl+Shift+↓,点击需要选中的那一列,然后按下excel选中整列的快捷键C…

    2024年5月22日
    4600
  • 读取数组c语言,c语言获取数组的长度

    c语言如何读取txt内容到数组? 首先让我们新建一个Class类。书写Main方法。让我们在C盘根目录下新建一个txt文档,内容为‘test’。然后让我们接着写代码,首先创建一个File对象。然后创建一个StringBuilder对象,用于储存读取的内容。 int i = 0, j;FILE *fp;//文件指针 fp = fopen(in.txt, r);…

    2024年5月21日
    3900

发表回复

登录后才能评论



关注微信