标签: audio-recording

警告:忽略File.mkdir()

我使用Media Recorder API创建了一个基本的录音应用程序.我正在尝试在SD卡中创建一个文件夹,并将我录制的文件保存到该文件夹​​中.我收到以下代码的警告.

File.mkdir()被忽略

    // Assign random number to avoid audio file from overwriting
    Long tsLong = System.currentTimeMillis()/1000;

    // Specify a Location for the recorded file to be stored in the SD card
    mFileName = Environment.getExternalStorageDirectory().getAbsolutePath() + "/AudioRecordTest/";
    File path = new File(mFileName);
    if(!path.exists()) {
        path.mkdir();
    }
    mFileName += "/AudioRecordTest_" + tsLong.toString() + ".mp3";
Run Code Online (Sandbox Code Playgroud)

如何解决此警告消息.如果有任何其他错误,请随意修改代码.

android sd-card audio-recording android-sdcard

12
推荐指数
2
解决办法
1万
查看次数

监听音频线路

我需要监控我的音频线路输入在Linux中,并在音频播放时,声音必须被记录并保存到一个文件中.与运动如何监控视频输入类似.

是否有可能用bash做到这一点?类似的东西:

#!/bin/bash

# audio device
device=/dev/audio-line-in

# below this threshold audio will not be recorded.
noise_threshold=10

# folder where recordings are stored
storage_folder=~/recordings

# run indefenitly, until Ctrl-C is pressed
while true; do
   # noise_level() represents a function to determine
   # the noise level from device
   if noise_level( $device ) > $noise_threshold; then
     # stream from device to file, can be encoded to mp3 later.
     cat $device > $storage_folder/$(date +%FT%T).raw         
   fi;
done;
Run Code Online (Sandbox Code Playgroud)

编辑:我想从这个程序中获得的流程是

 a. when …
Run Code Online (Sandbox Code Playgroud)

linux audio bash audio-recording

11
推荐指数
1
解决办法
6459
查看次数

为什么AudioRecord.getMinBufferSize返回ERROR_BAD_VALUE(-2)?

我在三星Galaxy S i9000上测试它.

int sampleRate = 44100;
int bufferSize = AudioRecord.getMinBufferSize(sampleRate, 
    AudioFormat.CHANNEL_IN_MONO, AudioFormat.ENCODING_PCM_8BIT);
Run Code Online (Sandbox Code Playgroud)

它返回-2 ERROR_BAD_VALUE.

原始采样率为44100Hz,由返回

AudioTrack.getNativeOutputSampleRate(AudioManager.STREAM_SYSTEM).

我已经尝试将sampleRate设置为1000,8000,22100和44100.我也尝试过更改AudioFormat.CHANNEL_IN_MONOAudioFormat.CHANNEL_CONFIGURATION_MONO.我也试过STEREO(两个IN_STEREOCONFIGURATION_STEREO).我也尝试过16位编码而不是8位.

更新:我的清单有AUDIO_RECORD权限.

结果我一直得-2.为什么会这样?

android audio-recording

11
推荐指数
1
解决办法
1万
查看次数

目前在非展会 ReactNative 应用程序中录制音频的推荐方法是什么?

我在 npm 中搜索了“react native audio record”,但没有找到任何似乎得到维护、大量使用且使用量不断增长的内容。那么,我们目前如何在非展会 ReactNative 应用程序中录制音频呢?

我使用过react-native-audio-record,但大约一年前它的每周下载量急剧下降,并且一直保持在较低水平。而且,录制后,在 iOS 上,我无法播放任何音频文件,直到重新启动我的应用程序。无论我使用react-native-sound还是react-native-video尝试播放音频文件,都存在此问题。

我尝试了react-native-audio-recorder-player,但在尝试遵循设置过程、研究错误等半天之后,我放弃了——我无法用它来构建我的项目。

我应该如何在要发布的 iOS 和 Android 版非展会 ReactNative 应用程序中录制音频?我正在寻找一个可维护的主流解决方案。

android audio-recording voice-recording ios react-native

11
推荐指数
0
解决办法
2285
查看次数

Android AudioRecord用于记录呼叫的设置

我使用AudioRecord类在通话期间录制语音.

我很想记录拥有手机的人的声音(来自麦克风).在录制过程中,我想做一些音频处理,但现在这是offtopic.

Android具有以下AudioSources选项:

  • MediaRecorder.AudioSource.VOICE_CALL
  • MediaRecorder.AudioSource.MIC
  • MediaRecorder.AudioSource.VOICE_UPLINK
  • MediaRecorder.AudioSource.VOICE_DOWNLINK

你能解释一下它们之间的区别吗?好的MIC显而易见但VOICE_CALL vs VOICE_UPLINK vs VOICE_DOWNLINK?

另外我应该选择采样率(8000Hz,16000Hz,2250Hz,44100Hz).你能告诉我选择什么样的采样率以及为什么?

对于音频格式,我选择了AudioFormat.ENCODING_PCM_16BIT,但它也有: - AudioFormat.ENCODING_DEFAULT - AudioFormat.ENCODING_INVALID - AudioFormat.ENCODING_PCM_8BIT

最后我应该使用多少个频道?为什么?(AudioFormat.CHANNEL_IN_STEREO或AudioFormat.CHANNEL_IN_MONO)

android signal-processing audio-recording android-audiorecord

10
推荐指数
2
解决办法
1万
查看次数

AVAudioSession /音频会话服务切换输出

好吧,我的AVAudioSession定义如下(是的,混合了c和obj-c调用)还要注意应用程序有背景模式音频,因为如果录制它必须在应用程序在后台时继续这样做:

[(AVAudioSession *)[AVAudioSession sharedInstance] setDelegate: self];
// Allow the app sound to continue to play when the screen is locked.
[[AVAudioSession sharedInstance] setCategory:AVAudioSessionCategoryPlayAndRecord error:nil];
//Turn off automatic gain on the microphone
[[AVAudioSession sharedInstance] setMode:AVAudioSessionModeMeasurement error:nil];
//Turn on the ability to mix with others
UInt32 doSetProperty = 1;
AudioSessionSetProperty (kAudioSessionProperty_OverrideCategoryMixWithOthers, sizeof(doSetProperty), &doSetProperty);

//Activate the audio session
[[AVAudioSession sharedInstance] setActive:YES error:nil];
Run Code Online (Sandbox Code Playgroud)

该应用程序有几个不同的音频选项(只有前两个已编程):

  • 正常:没有来自应用程序的音频,所以不要乱用外部音频
  • 仅录制耳机麦克风:必须没有增益调整,不要弄乱外部音频(将通过耳机播放)
  • 从应用程序播放音乐,无需录制:停止外部音频,并通过当前输出播放(扬声器或耳机)
  • 从应用程序播放音乐并录制耳机麦克风:停止外部音频,仅通过耳机录制和播放

录制在前台和后台运行良好,我稍后会添加播放.然而,我今晚才注意到,如果音频已经在扬声器上播放(Pandora)并且我进入我的应用程序并激活录音模式,那么它将Pandora切换到通过电话扬声器播放,甚至在音频消息停用后应用程序背景(但不强制关闭)音频继续通过手机扬声器播放,直到我强行关闭应用程序.

//Deactivate the audio session
[[AVAudioSession sharedInstance] setActive:NO error:nil];
Run Code Online (Sandbox Code Playgroud)

另一方面,如果耳机进入并且当应用程序开始进入录制模式时音乐正在通过耳机播放,那么只有短暂停顿并且音乐继续以相同音量播放(正确,没有闪避) .

当我在没有耳机的情况下激活音频会话时,我没有看到为什么路线应该改变的原因,以及为什么在会话停用时它不会改变.特别是换到手机扬声器!有什么东西我做错了,或者我只需要根据用户想要做什么(而不是毯子播放+记录和模式测量)来定义AVAudioSession?即使我需要为不同的用例单独定义它.例如,如果应用程序正在录制,音频将始终通过耳机,如果应用程序未录制,则音频输出耳机或扬声器(取决于用户是否插入了耳机) - 即正常行为).

额外细节

好的,我尝试切换所有代码c并注意到有关kAudioSessionProperty_OverrideAudioRoute的文档中的一个注释 …

iphone cocoa-touch core-audio audio-recording avaudiosession

10
推荐指数
1
解决办法
5769
查看次数

我想每秒调用20次installTapOnBus:bufferSize:format:block:

我希望从麦克风实时输入波形显示.我已经使用installTapOnBus:bufferSize:format:block:来实现,这个函数在一秒钟内被调用三次.我想将此函数设置为每秒调用20次.我在哪里可以设置?

AVAudioSession *audioSession = [AVAudioSession sharedInstance];

NSError* error = nil;
if (audioSession.isInputAvailable) [audioSession setCategory:AVAudioSessionCategoryPlayAndRecord error:&error];
if(error){
    return;
}

[audioSession setActive:YES error:&error];
if(error){
    retur;
}

self.engine = [[[AVAudioEngine alloc] init] autorelease];

AVAudioMixerNode* mixer = [self.engine mainMixerNode];
AVAudioInputNode* input = [self.engine inputNode];
[self.engine connect:input to:mixer format:[input inputFormatForBus:0]];

// tap ... 1 call in 16537Frames
// It does not change even if you change the bufferSize
[input installTapOnBus:0 bufferSize:4096 format:[input inputFormatForBus:0] block:^(AVAudioPCMBuffer* buffer, AVAudioTime* when) {

    for (UInt32 i = 0; i < …
Run Code Online (Sandbox Code Playgroud)

objective-c audio-recording avfoundation ios ios8

10
推荐指数
3
解决办法
5869
查看次数

直播音频流java

我正在实现从MIC到另一台PC上的java服务器的实时流媒体.但我只听到白噪声.

我已经附加了客户端和服务器程序

Client:

import java.io.IOException;
import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.InetAddress;
import java.net.SocketException;
import java.net.UnknownHostException;

import javax.sound.sampled.AudioFormat;
import javax.sound.sampled.AudioInputStream;
import javax.sound.sampled.AudioSystem;
import javax.sound.sampled.DataLine;
import javax.sound.sampled.LineUnavailableException;
import javax.sound.sampled.TargetDataLine;

public class Mic 
{
    public byte[] buffer;
    private int port;
    static AudioInputStream ais;

    public static void main(String[] args)
    {
        TargetDataLine line;
        DatagramPacket dgp; 

        AudioFormat.Encoding encoding = AudioFormat.Encoding.PCM_SIGNED;
        float rate = 44100.0f;
        int channels = 2;
        int sampleSize = 16;
        boolean bigEndian = true;
        InetAddress addr;


        AudioFormat format = new AudioFormat(encoding, rate, sampleSize, channels, …
Run Code Online (Sandbox Code Playgroud)

java sockets audio-recording audio-streaming

10
推荐指数
1
解决办法
1万
查看次数

iOS - 检测吹入麦克风并转换结果!(迅速)

我需要在swift中开发一个iOS应用程序来检测用户对麦克风的打击.这必须是一个挑战游戏,两个玩家必须一个接一个地吹入iPhone麦克风.分贝值应该以米或公里为单位进行测量和转换,这样我才能确定胜利者."进一步吹"(球员1:50公里,球员2:70公里)的球员获胜.

这是可能的实施吗?

我在swift中有这个代码,我不知道如何继续:

import Foundation
import UIKit
import AVFoundation
import CoreAudio

class ViewController: UIViewController {
// @IBOutlet weak var mainImage: UIImageView!

var recorder: AVAudioRecorder!
var levelTimer = NSTimer()
var lowPassResults: Double = 0.0
override func viewDidLoad() {
    super.viewDidLoad()
    let url = NSURL.fileURLWithPath("dev/null")
    //numbers are automatically wrapped into NSNumber objects, so I simplified that to [NSString : NSNumber]
    var settings : [NSString : NSNumber] = [AVSampleRateKey: 44100.0, AVFormatIDKey: kAudioFormatAppleLossless, AVNumberOfChannelsKey: 1, AVEncoderAudioQualityKey: AVAudioQuality.Max.rawValue]
    var error: NSError?
   // mainImage?.image = UIImage(named: "flyForReal.png"); …
Run Code Online (Sandbox Code Playgroud)

iphone audio-recording ios swift

10
推荐指数
2
解决办法
8469
查看次数

Android - 录制视频时静音麦克风

在按照与此类似的教程后,我正在使用MediaRecorder类使用相机录制视频

http://androidcookbook.com/Recipe.seam;jsessionid=40151FCD26222877E151C3EEFB406EED?recipeId=1375&recipeFrom=ViewTOC

我希望在录音时能够将麦克风静音/取消静音.怎么可能?

我正在设置音频源

 mMediaRecorder.setAudioSource(MediaRecorder.AudioSource.CAMCORDER);
    mMediaRecorder.setVideoSource(MediaRecorder.VideoSource.CAMERA);
Run Code Online (Sandbox Code Playgroud)

但是,如果我想在某些时候没有声音录音怎么办?

android audio-recording video-recording mediarecorder

10
推荐指数
1
解决办法
4895
查看次数