android 4.4 flac,如何在Android中将音频原始转换为FLAC
我使用audioRecord类录制音频。现在我想将音频原始文件转换为* flac格式。我转换*原始文件为WAV下一方式:如何在Android中将音频原始转换为FLAC
private void copyWaveFile(String inFilename,String outFilename){
FileInputStream in = null;
FileOutputStream out = null;
long totalAudioLen = 0;
long totalDataLen = totalAudioLen + 36;
long longSampleRate = sampleRate;
int channels = 2;
long byteRate = RECORDER_BPP * sampleRate * channels/8;
byte[] data_pcm = new byte[mAudioBufferSize];
try {
in = new FileInputStream(inFilename);
out = new FileOutputStream(outFilename);
totalAudioLen = in.getChannel().size();
totalDataLen = totalAudioLen + 36;
Log.i(TAG,"File size: " + totalDataLen);
WriteWaveFileHeader(out, totalAudioLen, totalDataLen,
longSampleRate, channels, byteRate);
while(in.read(data_pcm) != -1){
out.write(data_pcm);
}
in.close();
out.close();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
这段代码是负责文件头
private void WriteWaveFileHeader(
FileOutputStream out, long totalAudioLen,
long totalDataLen, long longSampleRate, int channels,
long byteRate) throws IOException {
byte[] header = new byte[44];
header[0] = 'R'; // RIFF/WAVE header
header[1] = 'I';
header[2] = 'F';
header[3] = 'F';
header[4] = (byte) (totalDataLen & 0xff);
header[5] = (byte) ((totalDataLen >> 8) & 0xff);
header[6] = (byte) ((totalDataLen >> 16) & 0xff);
header[7] = (byte) ((totalDataLen >> 24) & 0xff);
header[8] = 'W';
header[9] = 'A';
header[10] = 'V';
header[11] = 'E';
header[12] = 'f'; // 'fmt ' chunk
header[13] = 'm';
header[14] = 't';
header[15] = ' ';
header[16] = 16; // 4 bytes: size of 'fmt ' chunk
header[17] = 0;
header[18] = 0;
header[19] = 0;
header[20] = 1; // format = 1
header[21] = 0;
header[22] = (byte) channels;
header[23] = 0;
header[24] = (byte) (longSampleRate & 0xff);
header[25] = (byte) ((longSampleRate >> 8) & 0xff);
header[26] = (byte) ((longSampleRate >> 16) & 0xff);
header[27] = (byte) ((longSampleRate >> 24) & 0xff);
header[28] = (byte) (byteRate & 0xff);
header[29] = (byte) ((byteRate >> 8) & 0xff);
header[30] = (byte) ((byteRate >> 16) & 0xff);
header[31] = (byte) ((byteRate >> 24) & 0xff);
header[32] = (byte) (2 * 16/8); // block align
header[33] = 0;
header[34] = RECORDER_BPP; // bits per sample
header[35] = 0;
header[36] = 'd';
header[37] = 'a';
header[38] = 't';
header[39] = 'a';
header[40] = (byte) (totalAudioLen & 0xff);
header[41] = (byte) ((totalAudioLen >> 8) & 0xff);
header[42] = (byte) ((totalAudioLen >> 16) & 0xff);
header[43] = (byte) ((totalAudioLen >> 24) & 0xff);
out.write(header, 0, 44);
}
我不明白什么应该是* FLAC文件的参数
+0
hello用户,如果你能够将原始文件转换为flac,那么请分享你的方式,以便我可以帮助自己。我从1周内陷入这个问题。一点帮助,将不胜感激。 –
2014-07-19 11:30:58
android 4.4 flac,如何在Android中将音频原始转换为FLAC相关推荐
- 如何在Java中将字节数组转换为InputStream和OutputStream
您是否坚持使用编码,因为您有字节数组,并且链中的下一个方法需要InputStream? 不用担心Java有解决方案,您可以使用 ByteArrayInputStream 在Java中将字节数组转换为I ...
- 如何在Java中将GIF图像转换为PNG等图像格式?试试Aspose
通常,GIF图像用于描述动画.动画GIF是按特定顺序组合在一起的帧的集合.但是,在某些情况下,必须将GIF图像转换为其他光栅图像格式.对于这种情况,本文演示了如何使用Java将GIF图像转换为PNG, ...
- 对象数组转成字符串数组 java_如何在Java中将对象数组转换为字符串数组
如何在Java中将对象数组转换为字符串数组 我使用以下代码将Object数组转换为String数组: Object Object_Array[]=new Object[100]; // ... get ...
- 用 python 脚本,把当前目录及子目录下的 wav 音频文件转换为 flac 格式
用 python 脚本,把当前目录及子目录下的 wav 音频文件转换为 flac 格式 import os, subprocessfor d,sd,files in os.walk('.'):for ...
- android 禁用通知栏_如何在Android上禁用通知
android 禁用通知栏 Notifications are great, and Android's notification system is arguably the best out th ...
- 阻止android应用调用_如何在Android上设置应用时间限制和阻止应用
阻止android应用调用 Khamosh Pathak Khamosh Pathak Spending way too much time on your Android device? Use a ...
- android led闪烁功能,如何在Android应用层中制作一个LED指示灯效果
如何在Android应用层中制作一个LED指示灯效果 发布时间:2020-12-08 16:12:59 来源:亿速云 阅读:86 作者:Leah 本篇文章给大家分享的是有关如何在Android应用层中 ...
- android 动态修改菜单,如何在Android的“选项”菜单上更改MenuItem?
如何在Android的"选项"菜单上更改MenuItem? 我的Activity上有一个选项菜单,带有mymenu.xml"开始". 选择此3000128611 ...
- android打电话的intent,如何在Android中使用intent打电话?
如何在Android中使用intent打电话? 我正在使用以下代码在Android中进行调用,但它给了我安全例外,请帮忙. posted_by = "111-333-222-4"; ...
最新文章
- 学好单片机能找什么工作?单片机好学吗?
- webstorm安装_WebStorm2019安装教程
- 最近使用的两个工具 winscp和xshell
- 《HTML5 Canvas开发详解》——导读
- 【Python】学习笔记总结8(经典算法)
- 2020-11-19
- 字母框如何影响UI内容的理解
- JPA技巧:避免N + 1选择问题
- c#重写了窗体的OnKeyDown事件,但是不执行
- 如何在 Quagga BGP 路由器中设置 IPv6 的 BGP 对等体和过滤
- js调用java_Js调用Java方法并互相传参的简单实例
- java设计模式-工厂系列
- 程序员如何学习一门新技术?
- 关于写专利的一点感想
- 方舟破解版自建服务器,方舟生存进化自建服务器教程
- 小学四则运算练习软件需求说明
- 手把手教你如何玩转EasyExcel的导入和导出
- pynq-z2 使用PL做流水灯
- 瞒不住了,Prefetch 就是一个大谎言
- 台式计算机网线接口松动怎么办,电脑网线接口附近时常有滋滋声是怎么回事