标签: audio-recording

如何在Java中对多声道声音输入进行采样

我意识到这可能是相对利基,但也许这就是为什么这是好的问题无论如何.我正在寻找一个硬件多输入录音控制台(例如Alesis IO 26)来接收Adat lightpipe 8声道输入来进行信号处理.由于我还没有获得该设备并且需要弄清楚这是否可行(预算问题),我想问一下是否有人有任何经验来获取Java中的所有这8个数据输入?我已经看过很多使用Javax.sound.sampled库录制声音的例子,但是我找不到关于多声道超过2的任何信息.我​​感兴趣的是将8个声道单独作为单声道源采样到在它们上执行一些简单的DSP.硬件设备是否会被视为一个混音器?8个通道表示为8行?我希望我的术语合适.

如果有人可以向我指出任何相关信息,我将不胜感激.谢谢!

java javasound audio-recording

7
推荐指数
1
解决办法
4190
查看次数

PhoneGap Android插件可以提供更高质量的录音?

PhoneGap媒体API提供了一种以跨平台方式录制音频的机制,适用于Android,但音频质量非常糟糕 - 8 kHz采样率,也许还有一些高损耗的编解码器.我从这个问题中了解到,使用java代码可以获得更高质量的录音.

有人知道Android的PhoneGap插件可以提供更高质量的录音吗?

audio plugins android audio-recording cordova

7
推荐指数
2
解决办法
3047
查看次数

后台进程subprocess.Popen with Pipe

我正在尝试使用arecord记录和转换使用python的流.

在shell中,这是一个或多或少的命令:

arecord -B 5000 -f dat | lame -m j -q 5 -V 2 - test.mp3 &
Run Code Online (Sandbox Code Playgroud)

在Python中,我尝试使用subprocess.Popen:

reccmd = ["arecord", "-B", "5000", "-f", "dat"]
mp3cmd = ["lame", "-m", "j", "-q", "5", "-V", "2", "-", "test.mp3"]
p = subprocess.Popen(reccmd, stdout=subprocess.PIPE)
p2 = subprocess.Popen(mp3cmd, stdin=p.stdout)
p2.communicate()
Run Code Online (Sandbox Code Playgroud)

但我不知道如何在代码中包含"&"或类似内容,以便能够使用a来停止录制

killall arecord 命令

python subprocess background audio-recording

7
推荐指数
1
解决办法
6448
查看次数

我可以使用AVCaptureSession将AAC流编码到内存吗?

我正在编写一个iOS应用程序,通过网络传输视频和音频.

我使用AVCaptureSession用抢原始视频帧AVCaptureVideoDataOutput然后对其编码,在软件使用X264.这非常有效.

我想对音频做同样的事情,只是我不需要在音频方面那么多控制,所以我想使用内置的硬件编码器来产生AAC流.这意味着从Audio Toolbox层使用Audio Converter.为了做到这一点,我为AVCaptudeAudioDataOutput的音频帧添加了一个处理程序:

- (void)captureOutput:(AVCaptureOutput *)captureOutput
didOutputSampleBuffer:(CMSampleBufferRef)sampleBuffer
       fromConnection:(AVCaptureConnection *)connection 
{
    // get the audio samples into a common buffer _pcmBuffer
    CMBlockBufferRef blockBuffer = CMSampleBufferGetDataBuffer(sampleBuffer);
    CMBlockBufferGetDataPointer(blockBuffer, 0, NULL, &_pcmBufferSize, &_pcmBuffer);

    // use AudioConverter to
    UInt32 ouputPacketsCount = 1;
    AudioBufferList bufferList;
    bufferList.mNumberBuffers = 1;
    bufferList.mBuffers[0].mNumberChannels = 1;
    bufferList.mBuffers[0].mDataByteSize = sizeof(_aacBuffer);
    bufferList.mBuffers[0].mData = _aacBuffer;
    OSStatus st = AudioConverterFillComplexBuffer(_converter, converter_callback, (__bridge void *) self, &ouputPacketsCount, &bufferList, NULL);
    if (0 == st) { …
Run Code Online (Sandbox Code Playgroud)

aac audio-recording avfoundation ios avcapturesession

7
推荐指数
1
解决办法
5365
查看次数

如何在Cocoa应用程序中从WebView捕获声音

我正在编写一个具有WebView的Cocoa应用程序.(Mountain Lion上的Xcode 4.4)

我需要你的帮助来记录WebView中显示的网页的声音/音频.

我想将音频录制到文件中,该文件来自WebView,当它显示生成声音的网页时.

有没有简单的方法呢?如果你能给我任何建议,我将不胜感激.

谢谢.

macos cocoa core-audio audio-recording

7
推荐指数
0
解决办法
269
查看次数

如何为AVWriter写入设置CMSampleBuffer的时间戳

我正在使用AVFoundation捕获和录制音频.有些问题我不太明白.

基本上我想从AVCaptureSession捕获音频并使用AVWriter编写它,但是我需要在从AVCaptureSession获得的CMSampleBuffer的时间戳中进行一些转换.我阅读了CMSampleBuffer的文档.我看到两个不同的时间戳术语:'presentation timestamp'和'output presentation timestamp'.这两者有什么不同?

假设我从AVCaptureSession获取CMSampleBuffer(用于音频)实例,并且我想使用AVWriter将其写入文件,我应该使用什么函数将CMTime"注入"到缓冲区以便设置它的显示时间戳.结果文件?

谢谢.

audio-recording avfoundation core-media ios cmsamplebufferref

7
推荐指数
2
解决办法
7422
查看次数

如何获取本机(硬件支持)音频采样率以避免内部采样率转换?

任何人都可以向我指出文档,说明不同iPhone版本的原生采样率,以避免core-audio内部采样率转换?

编辑: 否则,请您指点一个源代码示例,说明如何以编程方式获取这些值?

编辑:Apple文档(第26页)是指Canonical音频格式,但仅提及样本类型(PCM)和位深度(16位).它没有提到捕获硬件直接支持的任何本机采样率.这些是我正在寻找的价值观.

core-audio audio-recording ios

7
推荐指数
1
解决办法
7666
查看次数

如何在Android中使用Visualizer图形视图录制音频?

我需要显示带有录音的Visualizer图

音频记录,在图表中显示效果。

像这样的图。

在此处输入图片说明

如果有人有解决方案,请帮助我。我尝试找到最多但没有得到适当解决方案的解决方案。

audio android audio-recording

7
推荐指数
1
解决办法
4960
查看次数

如何使用Android Studio录制带有应用声音的视频?

我正在使用Android Studio 2.1开发一个应用程序,我想用声音录制一个用法示例的视频.

我已经录制了一些视频,但总是没有声音.由于我的应用程序中的声音是一个关键功能,我希望视频与我的应用程序的音频输出.

可能吗?如果是的话,我该如何使用它?

谢谢!

android video-capture audio-recording

7
推荐指数
1
解决办法
2840
查看次数

Android如何使用MediaRecorder录制音频并输出为原始PCM?

我目前使用MediaRecorder录制音频以生成.m4a,.mp4,.acc和.3gp,并使用VisualizerView可视化每个录制的输出数据.

现在我想用PCM做同样的事情.

我尝试使用带有ENCODING_PCM_16BIT输入的MediaRecorder和几种不同的输出组合.但是这些组合都没有产生原始PCM输出.

我的问题是:如何使用MediaRecorder录制并将结果输出为原始PCM?

Java代码:

public String mFileName = null;
private String fileName = null;
private String fileNamePcm = null;

String formattedDate = new SimpleDateFormat("MM-dd-yyyy_HH-mm-ss").format(new Date());
fileName = formattedDate;
fileNamePcm = formattedDate;

MediaRecorder mRecorder = new MediaRecorder();

startRecording() {

    // Test Format 1 - produced AMR_WB file
    mRecorder.setAudioSamplingRate(44100);
    mRecorder.setAudioSource(MediaRecorder.AudioSource.MIC);
    mRecorder.setOutputFormat(AudioFormat.CHANNEL_OUT_MONO); // produced AMR_WB file.
    mRecorder.setAudioEncoder(AudioFormat.ENCODING_PCM_16BIT);


    // Test Format 2 - produced 3gp file
    mRecorder.setAudioSamplingRate(44100);
    mRecorder.setAudioSource(MediaRecorder.AudioSource.MIC);
    mRecorder.setOutputFormat(MediaRecorder.OutputFormat.DEFAULT); // produced 3gp file.
    mRecorder.setAudioEncoder(AudioFormat.ENCODING_PCM_16BIT);


    // Test Format 3 - produced 3gp file …
Run Code Online (Sandbox Code Playgroud)

java android pcm audio-recording android-mediarecorder

7
推荐指数
1
解决办法
1227
查看次数