Android 录制音频输出
Posted
技术标签:
【中文标题】Android 录制音频输出【英文标题】:Android record audio output 【发布时间】:2015-09-02 15:52:52 【问题描述】:某些应用程序如何提供记录功能? android系统的音频输出?我发现的一切都是 在不同的网站上可以录制 MIC 输入的教程非常相似。 我不在乎麦克风输入,我想要音频输出,但不能 想象一下如何访问它。喜欢this 和this link应用程序
【问题讨论】:
链接的应用程序很可能有许多预先录制的声音,这些声音是根据您敲击的“鼓”来播放的。 是的。但是这是怎么记录的呢?他们使用了 soundpool,所以混音器的声音会出现,而不是预先录制的声音。 ToneGenerator 可能是您正在寻找的。 This 也可能有帮助。 该类提供播放 DTMF 音(ITU-T 建议 Q.23)、呼叫监控音(3GPP TS 22.001、CEPT)和专有音(3GPP TS 31.111)的方法。根据呼叫状态和路由选项,音调混合到下行链路音频或输出到免提电话或耳机。此 API 不适用于通过上行链路音频路径生成音调。但我的问题不同 以及此 SoundPool 对象的最大同时流数 32,因此合并 mp3 不是一个好主意 【参考方案1】:您可以随时尝试使用带麦克风的耳机,将耳机输出以电气方式循环回麦克风输入。现在,您通常在耳机上听到的任何声音都会反馈到麦克风中。使用一个小电容器来消除任何直流偏置,可能是 10nF 或 0.1uF。某些设备上存在直流偏置,以允许在耳机插孔上使用开关输入。
【讨论】:
灰,安卓手机没办法使用或添加小电容。我的应用程序有一个功能,它可以记录从应用程序播放的内容。 小帽没有进入手机,它进入耳机/麦克风线。【参考方案2】:经过很长时间,我找到了解决方案。
糟糕的解决方案:起初我使用Visualizer.OnDataCaptureListener这个监听器提供8位fft和 波形频率,但 wav 和 android 音频形式至少包含 16 位频率,我保存 8 位频率并播放,此音频 质量低,音频包含很多噪音。
好主意是:记录其音频输出的怪异游戏和音频重新编码应用程序,他们最初没有记录任何东西,他们 重新编码播放的声音,它们合并重新编码的文件和 创建了一个音频文件
【讨论】:
【参考方案3】:正如您的链接所示,它们是关于演奏乐器的。 如果您想根据触摸压力改变音频,这也是个好主意。
import android.app.Activity;
import android.os.Bundle;
import android.view.Menu;
import android.view.MotionEvent;
import android.widget.TextView;
public class MainActivity extends Activity
TextView textinfo;
MotionEvent pressure;
@Override
protected void onCreate(Bundle savedInstanceState)
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
float press = pressure.getPressure();
Toast.makeText(MainActivity.this,
press.toString(),
Toast.LENGTH_SHORT).show();
@Override
public boolean onCreateOptionsMenu(Menu menu)
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return true;
【讨论】:
坦克。但我的问题不在于演奏乐器。我的问题是如何录制 android 音频输出以上是关于Android 录制音频输出的主要内容,如果未能解决你的问题,请参考以下文章
Android:如何配置“tinymix”以使用“tinycap”录制系统音频
Android端WebRTC音视频通话录音-获取音频输出数据