标签: recording

在录音过程中处理警报中断

我正在开发一个录音应用程序,其中可能会通过电话,短信和/或系统警报中断.至于电话,我意识到录音必须停止并成功完成.我的挑战似乎与其他警报有关,例如电池电量不足,警报,短信等.目前,我已设法在警报中断弹出时暂停并保存录音,但我正在寻找更有效的选项.

在ad-hoc分发模式的大多数真实场景中,我注意到我的用户在录制他们的声音时甚至不监视iPhone或iPod屏幕.此外,如果我们在iPod Touch上测试这个应用程序,那么警报的声音非常微弱,他们会错过警报并继续录制,只有在几分钟后或者在会话结束时才能实现录制被打断了

这是我的问题:

  1. 如果出现任何系统警报或短信警报,是否可以在后台继续录制语音?
  2. 如果没有,是否有可能让应用程序在后台播放特定声音,直到用户意识到出现问题,查看屏幕,如果他们忽略系统警报,那么它将使应用程序进入到应用程序现在已经获得焦点,然后停止音频警报,然后可以选择从他们中断的位置继续录制.

任何帮助将不胜感激.处理这种情况的任何其他想法都是最受欢迎的.

iphone sdk alerts recording

5
推荐指数
1
解决办法
1090
查看次数

使用音频队列服务将数据录制到数据

我想将语音从一个iPhone传输到另一个iPhone.我已经使用TCP建立了两个iPhone之间的连接,我已经设法在iPhone上录制语音并使用音频队列服务播放它.我还设法在两个iPhone之间发送数据.我这样做是通过发送NSData包.

我的下一步是将音频数据发送到正在录制的其他iPhone.我相信我应该这样做AudioInputCallback.我AudioQueueBufferRef被调用inBuffer,似乎我想转换inBuffer->mAudioData为NSData,然后将NSData发送到另一个设备,然后解压缩它.

有谁知道这是否是这样做的方式以及如何将我转换inBuffer->mAudioData为NSData?其他方法也受到欢迎.

这是我的回调方法,我相信我应该"抓住"数据并将其发送到其他iPhone:

void AudioInputCallback(void *inUserData, AudioQueueRef inAQ, AudioQueueBufferRef inBuffer, const AudioTimeStamp *inStartTime, UInt32 inNumberPacketDescriptions, const AudioStreamPacketDescription *inPacketDescs)
{
    RecordState *recordState = (RecordState *)inUserData;
    if(!recordState->recording)
        return;

    OSStatus status = AudioFileWritePackets(recordState->audioFile,
                                            false,
                                            inBuffer->mAudioDataByteSize,
                                            inPacketDescs,
                                            recordState->currentPacket,
                                            &inNumberPacketDescriptions,
                                            inBuffer->mAudioData);
    if(status == 0)
    {
        recordState->currentPacket += inNumberPacketDescriptions;
    }

    AudioQueueEnqueueBuffer(recordState->queue, inBuffer, 0, NULL);
}
Run Code Online (Sandbox Code Playgroud)

iphone audio recording audioqueueservices nsdata

5
推荐指数
1
解决办法
2614
查看次数

不支持Java Sound格式

使用以下代码时:http://pastebin.com/5iVnttiP

我收到此错误:

javax.sound.sampled.LineUnavailableException: line with format PCM_SIGNED 16000.0 Hz, 16 bit, stereo, 4 bytes/frame, little-endian not supported.
    at com.sun.media.sound.DirectAudioDevice$DirectDL.implOpen(Unknown Source)
    at com.sun.media.sound.AbstractDataLine.open(Unknown Source)
    at com.sun.media.sound.AbstractDataLine.open(Unknown Source)
    at com.AIComputer.model.Recorder.<init>(Recorder.java:124)
    at com.AIComputer.AIComputer.main(AIComputer.java:7)
Run Code Online (Sandbox Code Playgroud)

现在我做了一些研究,发现并非所有声卡都支持所有格式,但是在运行此演示时:http://java.sun.com/products/java-media/sound/samples/JavaSoundDemo/ 我设法制作了一个使用完全相同的参数录制(线性,16000,16,带符号,小端,立体声).

我不知道我在这里做错了什么(因为我还是Java编码的初学者).

任何帮助将不胜感激!

java audio recording

5
推荐指数
1
解决办法
9951
查看次数

iOS实时音频I / O

iOS开发的新手,我设法创建了一个基本应用程序,可以通过iPhone主麦克风/耳机麦克风录制音频,然后在按下播放按钮时重播该音频。

我需要的是同时播放当前正在录制的音频,而不是录制到文件,然后再播放后期录音。因此,基本上,在(例如)头戴式耳机麦克风和耳机之间创建实时音频循环。

有可能实现这一目标吗?

如果是这样,有人可以帮我指出实现该功能的正确方向。所需的框架和任何代码片段将不胜感激。

非常感谢

iphone audio real-time recording ios

5
推荐指数
1
解决办法
1006
查看次数

自定义视频录制方向

当我在纵向模式下使用MediaRecorder录制视频时,以横向模式录制视频,

我试过了mMediaRecorder.setOrientationHint(90); 和mServiceCamera.setDisplayOrientation(90); 但它不起作用

video camera android recording

5
推荐指数
1
解决办法
457
查看次数

C# - 麦克风噪音检测

我正在使用nAudio Library来捕获麦克风输入.但我遇到了一个问题.我正在使用nAudio示例应用程序中的代码(我稍微修改过).代码生成基于麦克风输入的WAV文件并将其呈现为波形.这是代码.

private void RenderFile()
{
        SampleAggregator.RaiseRestart();
        using (WaveFileReader reader = new WaveFileReader(this.voiceRecorderState.ActiveFile))
        {
            this.samplesPerSecond = reader.WaveFormat.SampleRate;
            SampleAggregator.NotificationCount = reader.WaveFormat.SampleRate/10;
            //Sample rate is 44100

            byte[] buffer = new byte[1024];
            WaveBuffer waveBuffer = new WaveBuffer(buffer);
            waveBuffer.ByteBufferCount = buffer.Length;
            int bytesRead;
            do
            {
                bytesRead = reader.Read(waveBuffer, 0, buffer.Length);
                int samples = bytesRead / 2;
                double sum = 0;
                for (int sample = 0; sample < samples; sample++)
                {
                    if (bytesRead > 0)
                    {
                        sampleAggregator.Add(waveBuffer.ShortBuffer[sample] / 32768f);
                        double sample1 = waveBuffer.ShortBuffer[sample] / 32768.0; …
Run Code Online (Sandbox Code Playgroud)

c# audio microphone recording naudio

5
推荐指数
1
解决办法
2277
查看次数

如何在 MacOSX 上的 VLC 中录制屏幕和音频

我遇到了如何在 VLC 中捕获麦克风输入?在这篇文章中说:

\n\n
\n

Mac:使用 VLC 2.0.0 或更高版本并利用 qtsound 模块:

\n
\n\n
/Applications/VLC.app/Contents/MacOS/VLC -vvv qtsound:// \n
Run Code Online (Sandbox Code Playgroud)\n\n

如果我运行此命令,VLC 会从麦克风获取声音并将其输出到扬声器:

\n\n
/Applications/VLC.app/Contents/MacOS/VLC qtsound://\n
Run Code Online (Sandbox Code Playgroud)\n\n

有没有办法将其录制到文件中?\n如果有,是否有办法将其与屏幕录制结合起来并生成带声音的屏幕投射?

\n\n

到目前为止,我成功录制了屏幕投射,但无法在视频录制中添加声音:

\n\n
/Applications/VLC.app/Contents/MacOS/VLC -I dummy screen:// --screen-fps=25 --sout "#transcode{vcodec=h264,vb072,acodec=mp4a,ab=128}:standard{access=file,mux=mp4,dst="~/Desktop/vlc-output-terminal.mp4"}"\n
Run Code Online (Sandbox Code Playgroud)\n\n

知道如何使用 VLC 和 qtsound (或其他输入)从麦克风录制声音吗?

\n\n

更新:

\n\n

在 Linux 上,它使用所谓的--input-slave参数,我尝试使用 mac 音频设备在 mac 上复制该参数:

\n\n
/Applications/VLC.app/Contents/MacOS/VLC -vvv -I dummy  screen:// --input-slave qtsound://AppleHDAEngineInput:1B,0,1,0:1 --sout "#transcode{vcodec=h264,vb=1024,acodec=mp4a,ab=128}:standard{access=file,mux=mp4,dst="~/Desktop/vlc-output-terminal.mp4"}"\n
Run Code Online (Sandbox Code Playgroud)\n\n

不幸的是,尽管 VLC 表示一切正常,但输出文件无效并且始终只有 44 字节长。以下是该命令的控制台输出:

\n\n
APPLEs-MacBook-Pro:deploy-mac myuser$ /Applications/VLC.app/Contents/MacOS/VLC -vvv -I dummy  screen:// --input-slave …
Run Code Online (Sandbox Code Playgroud)

audio screen vlc recording

5
推荐指数
0
解决办法
2466
查看次数

FFMPEG:编解码器“gif”的不兼容像素格式“rgb24”,自动选择格式“rgb8”

我使用 ffmpeg 记录具有 24 位颜色深度的 xvfb 桌面并将其保存为 gif 格式(然后我将其通过管道传输到 AWS,以便您可以在命令的末尾用filename.gif替换“ - ”符号,它不会” t 影响这个问题):

ffmpeg -f x11grab -video_size 800x600 -r 30 -i :99.0 -f gif -pix_fmt rgb24 -t 5 -
Run Code Online (Sandbox Code Playgroud)

但是,我总是收到警告:

编解码器“gif”的像素格式“rgb24”不兼容,自动选择格式“rgb8”

这会导致不正确的色彩再现。我在 Windows 和 Ubuntu Docker 容器上都进行了尝试,无论是预编译的还是源代码的,都来自具有最后提交的存储库,但没有运气。我也在其他人的日志中看到他们使用 - -pix_fmt rgb24bgr24并且它工作得很好。

所以问题是:为了将 rgb24 与 gif 编码器一起使用,我需要安装或配置什么吗?或者也许有一种解决方法,例如先将其转换为另一种格式?

这是我输出的一部分:

ffmpeg version git-2017-08-18-f386dd7 Copyright (c) 2000-2017 the FFmpeg developers
  built with gcc 5.4.0 (Ubuntu 5.4.0-6ubuntu1~16.04.4) 20160609
  configuration: --enable-gpl --enable-libmp3lame --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-librtmp --enable-libtheora --enable-libvorbis --enable-libvpx --enable-libx264 --enable-nonfree --enable-version3 …
Run Code Online (Sandbox Code Playgroud)

rgb ffmpeg gif recording video-recording

5
推荐指数
1
解决办法
5070
查看次数

在 jupyter notebook 中远程录制音频

有没有办法使用本地麦克风在远程 jupyter 笔记本上录制音频?

我正在尝试使用本地机器的麦克风在远程 jupyter 笔记本上录制音频。但是,当我按照此链接中的说明进行操作时!,则使用远程机器的麦克风。我们通过在远程机器上创建 Flask 网络服务器开发了一种解决方法,但我很好奇我们如何直接使用 jupyter。

python audio recording jupyter

5
推荐指数
0
解决办法
690
查看次数

在按下蓝牙设备按钮时在后台录制音频 (iOS)

是否可以实现一个 iOS 应用程序,当用户按下连接的蓝牙 (BLE) 设备上的按钮、手机屏幕关闭或应用程序时,能够录制音频(用于处理语音到文本)有背景吗?

我已经挖掘了很长时间才发现旧的/未答复的/模糊相关的帖子。

我有一个带有几个按钮的小型蓝牙控制器。其中一个按钮用于通过手机麦克风(或通过连接的蓝牙耳机麦克风)触发录音。至此,我们已经实现了此功能,并且当屏幕打开且应用程序处于前台时它可以正常工作,但是当应用程序处于后台或屏幕关闭时,此功能将停止运行。

我们的实现SFSpeechrecognizer通过Speech框架进行使用,并且我们确保向项目添加所有适当的功能Info.plist(包括Audio、、)。我们的应用程序会进行与音频录制无关的连续后台处理,并且无论应用程序是在前台还是后台,都可以毫无问题地接收来自连接设备的蓝牙 (BLE) 按钮按下操作。Speech RecognitionMicrophone Usage

据我了解,Apple/iOS 限制应用程序在后台时启动的音频录制的使用。如果应用程序要自行启动录音,那么从隐私/安全的角度来看,这是有道理的,但这种限制是否意味着没有方法可以让我们的用户在按下蓝牙 (BLE) 设备按钮时启动录音?

绝对任何对此有建设性的指导将不胜感激!

speech-recognition background recording speech-to-text ios

5
推荐指数
1
解决办法
573
查看次数