首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >PCM音频到文件

PCM音频到文件
EN

Stack Overflow用户
提问于 2019-05-06 11:02:33
回答 1查看 1.5K关注 0票数 2

我想在不一致语音频道中录制音频,并使用不一致机器人将其保存到文件中。

我每隔20毫秒接收一次音频作为pcm编码的byte[],我想将其保存到文件中。MP3是最好的,但我对其他文件格式也没有问题,比如ogg (它可能更简单)。

我正在使用JDA版本的4.ALPHA.0_82,我还包含了其他功能的lavaplayer版本1.3.17。如果这些库足够了,那将会很有帮助,但是如果我必须包含更多的库,那也没有问题。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-06-10 14:04:32

This question解释了如何将pcm转换为wav。我通过重写AudioReceiveHandler#handleCombinedAudio方法将不一致的音频复制到List<byte[]>

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
private List<byte[]> rescievedBytes=new ArrayList<>();
@Override
public void handleCombinedAudio(CombinedAudio combinedAudio) {
    try {
        rescievedBytes.add(combinedAudio.getAudioData(VOLUME));
    }catch (OutOfMemoryError e) {
        //close connection
    }
}

之后,我将List复制到byte[]中并创建了wav文件。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
try {
        int size=0;
        for (byte[] bs : rescievedBytes) {
            size+=bs.length;
        }
        byte[] decodedData=new byte[size];
        int i=0;
        for (byte[] bs : rescievedBytes) {
            for (int j = 0; j < bs.length; j++) {
                decodedData[i++]=bs[j];
            }
        }
        getWavFile(getNextFile(), decodedData);
    } catch (IOException|OutOfMemoryError e) {
        e.printStackTrace();
    }

private void getWavFile(File outFile, byte[] decodedData) throws IOException {
    AudioFormat format = new AudioFormat(8000, 16, 1, true, false);
    AudioSystem.write(new AudioInputStream(new ByteArrayInputStream(
            decodedData), format, decodedData.length), AudioFileFormat.Type.WAVE, outFile);
}

在重新排序的音频变得太大(OutOfMemoryError)的情况下,转换中止。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56003861

复制
相关文章
python音频文件中pcm格式提取
一.环境配置 https://ffmpeg.org/download.html#build-windows #选择对于系统 如果是windows直接访问一下连接 https://github.com/BtbN/FFmpeg-Builds/releases 选择xxx-shared.zip https://github.com/BtbN/FFmpeg-Builds/releases/download/autobuild-2020-09-27-12-31/ffmpeg-N-99395-ga3a6b56200-w
小小咸鱼YwY
2020/10/10
2.9K0
Android 音频PCM数据的采集和播放,读写音频wav文件
本文目的:使用 AudioRecord 和 AudioTrack 完成音频PCM数据的采集和播放,并读写音频wav文件
AnRFDev
2021/02/01
3.5K0
音频PCM编码「建议收藏」
例如 “44.1kHZ,16bit, 2channel” 格式,速率就是 44100 * 16 * 2 = 1411200 kpbs,如果pcm文件大小为10M,则播放时长 10 * 1024 * 1024 * 8 / 1411200 = 59.5s
全栈程序员站长
2022/09/20
1.2K0
音频PCM编码「建议收藏」
Linux音频驱动-PCM设备
pcm(Pulse-code modulation)脉冲编码调制,是将模拟信号转化为数字信号的一种方法。声音的转化的过程为,先对连续的模拟信号按照固定频率周期性采样,将采样到的数据按照一定的精度进行量化,量化后的信号和采样后的信号差值叫做量化误差,将量化后的数据进行最后的编码存储,最终模拟信号变化为数字信号。
DragonKingZhu
2020/03/24
8.9K0
Linux音频驱动-PCM设备
音频基础知识 - PCM 浅析
最近有个需求:对音频裁剪时,裁剪条的纵坐标必须是音频音量,以帮助用户更好的选择音频区域,所以就需要快速准确的提取出音频的音量列表。本文主要介绍下从mp4文件中提取音轨音量的方式,以及相关的知识点。
字节流动
2021/03/16
4K0
音频基础知识 - PCM 浅析
iOS音频能力提升——PCM基础
前言 音频是移动端很重要的能力,像直播类、在线教育类、唱歌类、短视频类等APP,都离不开音频功能。 具备音频相关知识与能力,对未来的职业发展有很大优势。 本文主要围绕音频知识的基础——PCM,介绍PCM的原理和相关操作。 声音是模拟的连续信号,而计算机只能离散的存储。为了使得计算机具备音频的能力,必须支持连续音频信号的离散化描述,而PCM具备这个能力。 正文 PCM脉冲编码调制(Pulse Code Modulation) 脉冲编码调制就是把一个时间连续,取值连续的模拟信号变换成时间离散,取值离散的数
落影
2018/04/27
2.7K0
iOS音频能力提升——PCM基础
python处理wav音频文件:音频信息,读取内容,获取时长,切割音频,pcm与wav互转
因为工作中用到了wav格式的音频,所以就搜集了一些关于wav音频的处理。 主要包括:音频信息,读取内容,获取时长,切割音频,pcm与wav互转
Python疯子
2018/12/28
17.4K0
使用libavcodec将mp3音频文件解码为pcm音频采样数据【[mp3float @ 0x561c1ec49940] Header missing】
  想要解决上面提到的问题,我们需要对mp3文件的格式有个大致了解,为了方便讲解,我这里画了个示意图:
故乡的樱花开了
2023/10/22
5050
Android OpenSL 录制 PCM 音频数据(八)
本章主要讲述如何通过Android OpenSL 实现录制 PCM 音频数据。开发流程回顾可以看下笔者前面发布过的文章。
PengJie
2021/01/10
1.2K0
如何使用libavfilter库给pcm音频采样数据添加音频滤镜?
  初始化音频滤镜的方法基本上和初始化视频滤镜的方法相同,不懂的可以看上篇博客,这里直接给出代码:
故乡的樱花开了
2023/10/22
3260
【Android RTMP】音频数据采集编码 ( FAAC 头文件与静态库拷贝到 AS | CMakeList.txt 配置 FAAC | AudioRecord 音频采样 PCM 格式 )
将 PCM 音频采样编码成 AAC 格式 , 需要使用 FAAC编码器 , 在上一篇博客 【Android RTMP】音频数据采集编码 ( 音频数据采集编码 | AAC 高级音频编码 | FAAC 编码器 | Ubuntu 交叉编译 FAAC 编码器 ) 中完成了对 FAAC 音频编码器的交叉编译 , 交叉编译结果如下 :
韩曙亮
2023/03/27
3.1K0
【Android RTMP】音频数据采集编码  ( FAAC 头文件与静态库拷贝到 AS | CMakeList.txt 配置 FAAC | AudioRecord 音频采样 PCM 格式 )
Linux下音频开发: 读取声卡PCM数据保存到文件(alsa-lib库)
如果是在其他发行版linux系统上或者需要在嵌入式linux系统上使用alsa-lib库,可以下载alsa-lib源码包,自行编译。
DS小龙哥
2022/01/12
4.3K0
Linux下音频开发: 读取声卡PCM数据保存到文件(alsa-lib库)
【音视频连载-007】基础学习篇-SDL 播放 PCM 音频文件(上)
在前面的文章中已经能够利用 SDL 去播放 YUV 视频文件了,接下来要通过 SDL 去播放 PCM 音频文件。
音视频开发进阶
2020/03/26
1.1K0
【音视频连载-007】基础学习篇-SDL 播放 PCM 音频文件(上)
PCM文件添加WAV头
在asr平台实现pcm格式录制的文件增加wav头,发现根据网上给的方法添加wav头的wav文件播放异常,播放没有声音!
呱牛笔记
2023/05/02
9730
PCM文件添加WAV头
【音视频连载-008】基础学习篇-SDL 播放 PCM 音频文件(下)
接上篇 SDL 播放 PCM 音频文件,已经实现了 推 的模式去播放,接下来看看 拉 的模式如何实现。
音视频开发进阶
2020/03/26
7360
Audio Unit播放PCM文件
前言 相关文章: 使用VideoToolbox硬编码H.264 使用VideoToolbox硬解码H.264 使用AudioToolbox编码AAC 使用AudioToolbox播放AAC HLS点播实现(H.264和AAC码流) HLS推流的实现(iOS和OS X系统) iOS在线音频流播放 最近对Audio Unit感兴趣,用几周的业余时间研究,顺利习得Audio Unit播放、录制声音,用AudioConvert转格式的技巧。 这是Audio Unit系列的第一篇,用Audio Uni
落影
2018/04/27
3.1K0
Audio Unit播放PCM文件
wav文件提取出pcm数据
/******************************************************************************************************* 文件功能:wav文件中提取pcm数据 作者:HFL 日期:2014-1-12 说明:wav文件就是在pcm数据的基础上加了一文件头。文件头的大小为44个字节(没有附件字段的情况,如果有附加字段问46个字节)       ,剔除文件头,就是纯pcm采样过来的数据。  pcm构成要素:采样率 ,声道个数,数据符号特性(一般8位都是无符号的) ********************************************************************************************************/ #include<stdio.h> #include<stdlib.h> void main() { FILE *infile, *outfile; char *buf = NULL; long length;    if((infile = fopen ("e:\\1.wav", "rb+"))==NULL) { printf("Open the 1.wav failed\n"); return ; } else { printf("Open the 1.wav success\n"); } if((outfile = fopen ("e:\\2.pcm", "wb"))==NULL) { printf("Open the 2.pcm failed\n"); return ; } else { printf("Open the 2.pcm success\n"); } /*获取文件的长度*/ fseek(infile,0,SEEK_END); length=ftell(infile); buf = (char*)malloc(length-43);/*文件数据段长度等于文件总长度-文件头长度位置*/
用户4148957
2022/06/14
1.2K0
Android多媒体之SoundPool+pcm流的音频操作
零、前言 今天比较简单,先理一下录制和播放的四位大将 再说一下SoundPool的使用和pcm转wav 讲一下C++文件如何在Android中使用,也就是传说中的JNI 最后讲一下变速播放和变调播放 ---- 一、AudioRecord和MediaRecorder,AudioTrack和MediaPlayer 0.到现在接触了四个类: 第一天:AudioRecord(录音)、AudioTrack(音频播放) 第二天:MediaPlayer(媒体播放器--音频部分) 第三天:MediaR
张风捷特烈
2019/02/25
2.8K0
Android多媒体之SoundPool+pcm流的音频操作
AnyRTC project 音频解码成PCM裸数据的代码位置
该文件路径:C:\Devtools\project\git\anyRTC-RTMP-OpenSource\AnyCore\plybuffer.cc
xiny120
2019/06/11
6410
点击加载更多

相似问题

疯狂音频PCM文件

114

合并pcm音频文件

12

添加PCM音频文件-混音音频

14

48 PCM立体声大端PCM到16 PCM单声道大端PCM音频

136

下采样PCM音频44100到8000

16
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文