问题标签 [soundpool]

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 投票
1 回答
12402 浏览

android - SoundPool 中的流音量与 AudioManager 中的音量

我感到很困惑...

SoundPool.play(int soundID, float leftVolume, float rightVolume , int 优先级, int loop, float rate)

这里的音量是从 0.0 到 1.0

我见过的教程建议将流量计算为:

这是有道理的。

我会假设这个音量将覆盖用户在手机中设置的全局媒体音量,我可以通过更改 soundPool 中的流音量来独立更改我的应用程序的音量。

但实际上它的工作原理类似于乘数 - 如果我将声音池中的音量设置为 0.5,实际音量将始终是全局音量的一半。非常容易复制:

  1. 将手机设置中的全局媒体音量设置为最大
  2. 使用 soundpool.play 将活动音量设置为 0.5 - 播放声音
  3. 将 soundpool.play 中的音量设置为 1 - 播放声音,声音会大两倍

有人可以解释为什么它会这样工作吗?传递给 SoundPool.play 方法的音量真的是全局音量的乘数吗?

0 投票
1 回答
3467 浏览

android - 使用 SoundPool 生成 10 到 20000Hz 之间的正弦波

我最初尝试使用 AudioTrack 生成正弦波。结果并不令人满意。然后我转到了 Soundpool 课程。我使用 Audacity 创建 1 秒的音频文件,然后修改播放速度 (.5 - 2.0) 以获得所需的频率。(阵列,因为也有锯和三角波文件)

然后,我根据选择的频率播放音频:

现在我看到了,除了 5000-20000 Hz 范围外,该方法工作正常。我对此感到头疼,不知道为什么它不起作用,我找不到任何问题的模式。

这种方法有一些基本问题吗?

提前谢谢你

编辑:“不工作解释” 当我在 5000-20000 Hz 范围内播放正弦波时,很明显频率不准确。这意味着音高很差。例如,19000 Hz 太低,很容易被耳朵察觉。我能说的是 10000 Hz(我的错误是 5000Hz),所以正常的播放速率是正确的。在 14kHz 左右,信号音高不再正确。

想法/可能的原因(?):( A)播放速度(SoundPool)有多少步?文档说 0.5-2.0 这是否意味着有 15 种不同的播放速度?(B)我使用 Audacity 生成 .ogg 文件。当我放大 10000Hz 正弦波时,我可以看到它不太平滑(采样率 44100),并且波不能精确地从 0 开始和结束。这会叠加不需要的信号吗?

0 投票
1 回答
554 浏览

android - 如何使用 Soundpool 从 Android 应用程序中原始文件夹的 SD 卡中加载声音?

我正在使用这个示例在我的 Androidapp 中加载和播放声音。我正在添加新的声音mSoundManager.addSound(2, R.raw.sound1);。如何从我的应用程序中原始文件夹的 SD 卡中加载声音?

0 投票
3 回答
2343 浏览

android - Android SoundPool 剪切声音文件短

我对 Android 还很陌生,所以要温柔!

我有以下代码,应该(我认为)只是播放“developersshort”。

[为了弄清楚发生了什么,它目前播放史蒂夫鲍尔默反复喊“开发者”的混音!声音文件的大小约为 90KB。]

当我在模拟器中运行我的应用程序并按下按钮触发声音时,它会说“开发人员开发人员开发人员......”等等,就像我所期望的那样。

但是,当我将它部署到我的手机时,我只听到类似“velop”的声音,然后声音就停止了。

我不知道发生了什么,有什么想法吗?

非常感谢!

0 投票
4 回答
3972 浏览

android - 我如何知道声音是否在 android 中播放完毕?

我如何知道声音是否已播放完毕?

我想播放 2 种声音,但我想播放一种声音,然后等到第 1 种声音完成后再开始第 2 种声音。

另外,如果我想在声音完成后做其他事情,比如在视图鳍状体中显示他的下一个视图,我可以这样做吗?

现在我正在使用 SoundPool 播放我的声音。

0 投票
2 回答
2251 浏览

android - 如何使用 SoundPool 同步声音

我一直在尝试同时播放一些声音;目前我正在使用 SoundPool 的共享实例。我希望同时播放 1、2 或 3 种声音,没有延迟。

当连续调用 SoundPool.play(...) X 次时,声音会按照人们想象的顺序播放。什么是正确的实现这一目标的方法是什么,我可以准备同时播放的所有声音,然后将它们作为一个播放?

须藤代码:

0 投票
5 回答
5942 浏览

android - 同时播放两个声音

我正在尝试在 android 中同时播放两种声音。我创建了两个 MediaPlayers 并正在使用下面的代码。它们目前正在一个接一个地播放。或者不完全是一个接一个,但有点延迟到彼此。

谢谢

0 投票
1 回答
473 浏览

android - Android SounPool 不重叠

我想在 Android 中按顺序播放 3 种声音。我创建了一个 SoundPool 并将“maxStreams”设置为“1”,认为在 for 循环中声音会“一次播放一个”,而不是一次播放。不幸的是,这是错误的。如何使用 soundPool 按顺序播放声音,而不是一次播放所有声音。谢谢。

0 投票
2 回答
3314 浏览

java - new File ( path ) 总是说没有文件

我的问题有点难以描述。

我的项目(和 apk 文件)中有一个单独的资源文件夹。

我已经可以使用它了

但实际上我想将文件加载到 SoundPool 中。我试过这样:

...但我总是收到错误信息:“错误加载/资源...”

load(String path, int) 在这个链接上,我看到我需要正确的 File 路径

现在我的问题是:它的工作路径如何。还是对我的问题有任何其他想法(与 AssetManager 一起使用)?

顺便提一句。我知道有一些特殊的 Android 方法可以获取像 R.id.View 这样的资源......但在我的情况下,这并不容易处理。

谢谢!

0 投票
3 回答
2262 浏览

android - 在android中播放特定频率的声音

我想根据用户输入在 android 中播放特定频率的声音,有点类似于吉他应用程序。谁能告诉我该怎么做?我需要在 res\raw 文件夹中包含所有频率声音吗?