Articles of 音频

在Android上使用SoundPool进行无缝循环?

我试图用SoundPool类循环短(20kb),无间隙ogg文件,并且在硬件上测试时无法获得一致的结果。 它总是使用模拟器完美播放,但是当我在Nexus 1或Samsumg Galaxy Tab 10.1上进行测试时,每个循环点都会有可听见的popup或点击。 非常奇怪的是,虽然一旦应用程序启动一致,但每次重新启动应用程序时的点击次数都会略有不同,并且在极少数情况下(更常见的是在平板电脑上)循环正常播放。 使用MediaPlayer的结果并不好。 想要在android上无间隙播放音频循环是不合理的吗? 当然有人有类似的function正常工作? 如果是这样,我很想看到它如何运作的一个例子。 谢谢!

Android AudioRecord到服务器上的UDP播放问题

我正在尝试制作一个简单的Android应用程序,将实时麦克风音频流式传输到服务器进行播放。 产生的播放听起来很奇怪,音频间隙很大。 有谁知道我做错了什么? 编辑:解决了。 结果我假设每个传入的缓冲区都是完全填满的,这是我的错误假设。 这是我的活动: public class MainActivity extends Activity { private static String TAG = “AudioClient”; // the server information private static final String SERVER = “xx.xx.xx.xx”; private static final int PORT = 50005; // the audio recording options private static final int RECORDING_RATE = 44100; private static final int CHANNEL = AudioFormat.CHANNEL_IN_MONO; […]

将AudioEffect附加到全球组合的首选方式?

在Android,AudioEffect API中,所有内置效果(如均衡器)都会出现警告 “注意:不推荐使用会话0将均衡器附加到全局音频输出混音。” 如果不推荐这样做,那么什么是替换API? 我的目标是为全球产出组合带来影响……

声音识别API,SDK(Android)

我需要制作一个Android应用程序,它可以识别我创建的某些声音文件,并在识别时执行操作。 所以类似于Shazam / Soundhound,但有我自己的声音文件。 是否有任何API或SDK或其他东西? 我读过有关Echoprint的内容,但我知道它适用于Windows和iOS,对我来说似乎很难。 那会有用吗? 或者还有其他选择吗? PS:为了说清楚,我不想要语音识别或文本到语音。 我的声音文件可以有音乐,失真的声音,效果等

Android(Java)实时音频输入(麦克风和USB)和输出

我想建立一个Android应用程序来从两个麦克风中获取音频数据,将声音与一些内存混合,然后通过耳机播放声音。 这需要实时完成。 你可以参考我的一些教程或任何参考资料,用于Java eclipse的实时音频输入,混音和输出吗? 到目前为止,我能够录制声音,保存它,然后播放它,但是我找不到任何教程可以通过这种方式实现与声音硬件的实时接口。 注意:一个麦克风通​​过分离器连接到Android的3.5毫米耳机插孔,另一个麦克风通​​过USB端口连接。 谢谢!

Android在后台播放音乐

我的活动代码如下: public class Player extends Activity implements OnCompletionListener, OnPreparedListener, OnErrorListener, OnBufferingUpdateListener, MusicFocusable { private Boolean playState = false; private String station = “http://38.101.19.5:9157”; public static final float DUCK_VOLUME = 0.1f; private String artistName = null; private String trackName = null; private TextView artist; private TextView track; private TextView status; private Button play; enum AudioFocus { […]

AudioTrack的全球死亡

我有一个应用程序,其中有几个线程,每个线程都被设置为一个单独的AudioTrack设置为MODE_STREAM 。 在应用程序之间切换工作正常,当应用程序正常关闭时,似乎正确关闭所有内容。 但是,如果应用程序在外部终止,例如从调试器终止,或者因为我刚刚在旧版本运行时安装了新版本,似乎全局AudioMixer中的某些状态变得混乱,并且我得到类似logcat的输出: 09-16 14:50:38.965 298 7150 W AudioTrack: obtainBuffer timed out (is the CPU pegged?) 0x83c2348 user=00000eb3, server=00000000 09-16 14:50:39.025 7066 7132 W AudioTrack: obtainBuffer timed out (is the CPU pegged?) 0x8249d40 user=00002000, server=00000000 09-16 14:50:40.277 298 7156 W AudioTrack: obtainBuffer timed out (is the CPU pegged?) 0x84cb810 user=00000eb3, server=00000000 并且没有使用AudioTrack的应用程序能够再次播放音频,直到我重新启动设备。 在此特定日志片段中,PID 298是system_server,7066是应用程序的新实例。 […]

Android:如何生成频率?

Android中是否有一种很好的方式来生成然后播放频率(例如1000hz,245hz)?

Android:为什么SoundPool的构造函数已弃用?

这是否意味着我们不能再使用它了? 如果min API设置低于21,我们应该使用什么? 此外,是否可以忽略该警告,因为使用它构建的旧应用程序可以在新操作系统上运行?

将Java代码重写为JS – 从字节创建音频?

我正在尝试将我用Java编写的一些(非常简单的)android代码重写为静态HTML5应用程序(我不需要服务器做任何事情,我想保持这种方式)。 我在Web开发方面有广泛的背景,但对Java有基本的了解,甚至在Android开发方面知识较少。 该应用程序的唯一function是获取一些数字并将其转换为字节的音频啁啾。 我将数学逻辑转换为JS绝对没有问题。 我遇到麻烦的地方是实际产生声音的时候。 这是原始代码的相关部分: import android.media.AudioFormat; import android.media.AudioManager; import android.media.AudioTrack; // later in the code: AudioTrack track = new AudioTrack(AudioManager.STREAM_MUSIC, sampleRate, AudioFormat.CHANNEL_OUT_MONO, AudioFormat.ENCODING_PCM_16BIT, minBufferSize, AudioTrack.MODE_STATIC); // some math, and then: track.write(sound, 0, sound.length); // sound is an array of bytes 我如何在JS中这样做? 我可以使用dataURI从字节中产生声音 ,但这是否允许我在这里控制其他信息(即采样率等)? 换句话说:在JS中执行此操作的最简单,最准确的方法是什么? 更新 我一直试图复制我在这个答案中find的东西。 这是我的代码的相关部分: window.onload = init; var context; // […]