我有下面的代码片段,它将.amr文件放入字节数组。 我知道如何从 header 中获取比特率,如下所示。因此,假设比特率为7.95,那么用于计算帧大小的公式是什么?谢谢。 public void getFrames() { File inputFile = new File(getmFileName()); try { FileInputStream fis = new FileInputStream(inputFile); byte fileContent[]= new byte[(int) inputFile.…

2020年10月11日 0条评论 33点热度 阅读全文

是否存在可用Java编写的AMR到WAV,WAV到AMR转换器?我需要实时进行转换。寻找免费或付费的开源。 谢谢。 解决方案如下: 最好的选择是从Java内部调用ffmpeg。遗憾的是,我不知道一个仅Java的好的解决方案,但是使用ffmpeg可以使您使用该程序可用的多种编解码器(包括AMR支持)。

2020年9月12日 0条评论 35点热度 阅读全文

我从.3gp文件提取原始AMR音频帧时遇到一些麻烦。我点击了链接:“http://android.amberfog.com/?p=181”,但没有“mdat”框类型,而是使用了“moov”。我在某处看到“moov”框和“mdat”框的位置因设备而异。有谁知道如何正确跳过.3gp header 并提取原始AMR数据?下面是一个代码片段: public AMRFile convert3GPDataToAmr(String rawAmrFilePath) throws IOException { if (_3gpFile…

2020年9月11日 0条评论 37点热度 阅读全文

如何上采样AMR音频数据。 amr文件包含6个字节的 header -“!#AMR” .getBytes(),此后有32个字节的帧,每个帧都有1个字节的 header 和31个字节的音频。我应该如何对其进行升采样?我读过关于线性插值的内容,但是我不确定如何在此处应用它。我应该在不同的帧之间插入还是在帧的字节之间插入插值?任何帮助将不胜感激:) 解决方案如下: 您需要将AMR数据转换为原始PCM缓冲区,对PCM缓冲区进行重新采样,然后有选择地转换回AMR。

2020年8月24日 0条评论 28点热度 阅读全文

我需要WAV格式的音频文件来建立某些功能,但是如果我从客户端到服务器获取AMR格式的音频文件,则需要将其转换为WAV格式。现在,我正在使用JAVE库文件将其他格式的音频媒体文件转换为WAV格式。一切正常,但是当我收到AMR音频文件时,它会引发异常,例如“it.sauronsoftware.jave.EncoderException:持续时间:N / A,比特率:N / A”,我已经在下面发布了我的代码... /** * method to convert all media format to wav format…

2020年6月6日 0条评论 22点热度 阅读全文

我如何从AMR-NB文件中提取诸如采样率,比特率等信息。严格来说,我要采样率或其他任何可能改变其音调或速度的数据。 WAV文件很容易,但是在这里我受AMR-NB格式的限制(J2me设备) 我在Google上进行了很多搜索,但无法获得任何结果... 是固定在8Khz的AMR-NB吗?还是每个样本都不同? 解决方案如下: 根据位于以下位置的AMR文件格式:http://developer.nokia.com/community/wiki/AMR_format AMR文件具有6个字节的 header ,后跟一组音频帧,每…

2019年12月19日 0条评论 41点热度 阅读全文

我编写了一种算法来从AMR文件中提取每个帧。我认为文件的前6个字节为 header ,以下信息为音频帧。每个音频帧由帧头和音频数据组成。帧头以字节为单位告知帧大小(使用CMR模式​​表-http://www.developer.nokia.com/Community/Wiki/AMR_format)。帧大小存储在帧的第一个字节中->第二位至第5位,将MSB视为第一位。 该算法无法正常工作,我决定以二进制方式(0和1)在屏幕上显示每个字节,并且似乎有时帧大小数字大于7,并且CMR表只有0 ... 7值。 以下是…

2019年8月8日 0条评论 42点热度 阅读全文

大家好,我是Web开发的新手,所以在使用它的工具方面我真的很傻。我的BB应用程序记录了.amr文件,这些文件已发送并保存在服务器上。我希望能够通过网站上的网络播放器播放这些文件,对此我有几个问题: 1)将这些文件转换为mp3 o wav之类的声音,而不是尝试使用amr格式播放会听起来很合理吗?声音文件由Java Web服务接收,并通过URL保存在MySQL数据库中另存为我的硬盘上的文件。因此,如果建议使用转换方法,则我希望使用Java。 2)我可以使用什么播放器以及如何播放这些文件?是amr文件还是转换后的文件 3…

2019年7月20日 0条评论 29点热度 阅读全文

我想知道如何在特定时间内录制声音,而不将其保存到文件中-例如保存在字节流中。另外,如果可能,使其看起来像AMR文件。我尝试搜索google,并亲自写了一些代码,但没有成功。如果您可以将我链接到说明如何执行此操作的页面,或举一个例子,那么您对您会很好:) 谢谢。 解决方案如下: MediaRecorder recorder = new MediaRecorder(); recorder.setAudioSource(MediaRecorder.AudioSource.MIC); recorder.setOutputF…

2019年3月14日 0条评论 28点热度 阅读全文

我正在编写Java应用程序,我想将Mp3转换为Amr音频格式。因此,我无法成功,因为没有文档或库可以提供帮助。如果可能的话,请举例说明如何处理。 谢谢。 解决方案如下: 我发现这个名为jave的库可以将媒体格式转换为另一种格式。你可以看到图书馆here 这是我使用上述插件完成的示例代码 Encoder encoder = new Encoder(); EncodingAttributes attributes = new EncodingAttributes(); attributes.setFormat("wav…

2019年1月3日 0条评论 50点热度 阅读全文