问题标签 [audiotrack]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
5 回答
22653 浏览

android - AudioTrack、SoundPool 或 MediaPlayer 我应该使用哪个?

我需要播放多个持续时间不同的音频文件,比如 5 到 30 秒。我想为右/左声道独立设置音量,并应用效果,如混响或失真。那么,我应该使用哪个 API?

另外,我在 AudioTrack API 上找不到太多文档。你知道我在哪里可以找到例子吗?谢谢。

0 投票
1 回答
1294 浏览

android - Android:延迟 AudioTrack

我有一个 Android AudioTrack,例如:

我填写:

我想让这首曲目延迟 2 秒播放。知道我怎么能做到这一点吗?提前感谢您的任何好主意。

0 投票
1 回答
1534 浏览

android - 如何去除音轨中的背景噪音?

我正在开发VOIP一种应用程序。发送声音是完美的,但是当我从网络服务器收到相同的声音时,我正在使用AudioTrackAPI 播放它。

我正在打电话at.play()at.write在一个线程中,以便我应该获得从其他设备录制和发送的所有声音。

但是,现在我面临的问题是,如果没有声音而不是它仍然像子弹一样播放,我的意思是当我尝试播放时会有连续的背景声音。

我在线程中使用以下函数:

如果没有从其他设备发送语音,我如何消除背景噪音。

0 投票
2 回答
568 浏览

android - Android 混合原始声音。源是 java 数组而不是文件或资源

我有未压缩的原始格式的音频数据作为 java 数组。short[] 或 byte[] 我希望在 Android 中播放它们。

SoundPool 看起来像我需要的,但我找不到从内存中加载数据的方法。它仅从文件加载,我不确定如何指定它是原始数据的格式。

0 投票
1 回答
6427 浏览

android - android sdk 实时录音

我使用此代码使用AudioTrackAudioRecord实时录制和播放录制的音频

我的问题 :

1.音频质量不好

2.当我尝试不同频率时,应用程序崩溃

0 投票
1 回答
565 浏览

android - 无法播放(使用 AudioTrack)使用 Visualizer 捕获的 PCM 音频

我正在尝试使用 Visualizer 在 MediaPlayer 中捕获播放的文件并使用 AudioTrack 播放它。但捕获的数据只是噪声。

这是我的代码。

字节只是产生原始白噪声。OnWaveForm 方法中的数据如何具有 PCM 格式?我怎么能从中得到?

0 投票
2 回答
10470 浏览

android - 使用 AudioTrack 和 AudioManager setSpeakerphoneOn

我正在使用 AudioTrack 播放通过 UDP 套接字接收的声音。我的声音伴随着很多噪音,所以我决定使用 AudioManager。但是 AudioManager 改变了应用程序范围之外的声音路由。下面是我正在使用的代码。

这段代码的问题是,当我关闭应用程序并启动音乐播放器时,声音来自前置扬声器而不是通常的后置扬声器,我无法以某种方式更改它。为了解决这个问题,我决定在关闭我的应用程序时添加以下行。

但是这条线的问题是,当我接到电话(普通电话)时,默认情况下扬声器是打开的。我真的需要帮助。

0 投票
2 回答
2697 浏览

android - 在 AudioTrack 上播放非阻塞数据

我正在实现一个 RTP 接收器。它接收 UDP 数据包,解码编解码器并将 PCM 样本写入到AudioTrack播放。一个问题似乎AudioTrack.write是阻塞,因此我会同时错过 UDP 数据包。

有没有关于如何处理这个问题的已知解决方案?

我尝试使用我自己的音频数据缓冲区setNotificationMarkerPosition,但似乎,audioTrack 只有在缓冲区被填充到某种程度时才会播放,因此标记位置永远不会到达或audioTrack.write再次阻塞。

我也尝试audioTrack.pause()在每次写入之前.play()再做一次,但这似乎会显着影响音质。

0 投票
1 回答
311 浏览

voip - 音轨延迟

我正在制作一个应用程序,它能够使用 AudioManager,特别是 AudioTrack 和 AudioRecord,在 WAN 上进行 VOIP 通信,AudioRecord 工作正常,但我在使用 AudioTrack 播放延迟方面存在严重问题。实在是太高了,无法接受。我正在接收 160 字节的块,我的音频设置是 16 位、8KHz、1 通道,因此,在我的 160 字节块中,我有大约 10 毫秒的块,我不会有明显的延迟

我知道他们有很多人有同样的问题,但是 VOIP 应用程序存在并且可能是我的问题。

PD:我正在用 Java 编程,我在摩托罗拉 Milestone(Droid,android 2.2)和另一部三星手机(android 2.3)之间进行了测试,我在两个播放设备上都有同样的问题。此外,我尝试将声音流式传输到我的计算机,并且它是实时的。这样,问题就出在播放器(AudioTrack)中。网络的延迟非常低(我在 WAN 上),我收到了超过 99% 的数据包(大约 16Kb/s)。

有什么方法可以继续使用 VOIP 程序并使其可用?

真的谢谢,除了这个问题,我还没有找到一些明确的解决方案,它肯定存在。它是一种非常常用和有用的,更多的是在通信设备中。

0 投票
3 回答
2671 浏览

android - 在 Android 上使用 OpenSL ES 通过套接字通信流式传输 MP3 音频

我正在尝试通过接入点使用 WiFi 将 MP3 从 Android 手机流式传输到另一部 Android 手机。问题是 OpenSL ES 似乎只支持 PCM 音频缓冲区作为源(除非使用 URI)。与其在发送之前在“主”端解码一个潜在的巨大文件,我更愿意让“客户端”将 MP3 解码为 PCM。请记住,这必须在文件流传输时发生,而不是简单地发送整个文件然后解码。有没有办法使用 OpenSL ES 来完成这个?音轨?这似乎是一个相当普遍的要求。