问题标签 [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 投票
0 回答
223 浏览

android - 使用 SoundPool 连续播放片段

我为 Android 平板电脑创建了一个游戏,玩家正在解决简单的数学问题。我正在努力让游戏大声朗读每个问题。我有所有数字 0-9 和 20、30、40 等的声音剪辑录音。有了所有这些声音剪辑,我应该能够“混合和匹配”它们以大声读出任何可能的问题。这是我当前的 sayProblem() 方法:

这在某些时候可以正确阅读问题,但有时会在 3 个不同的剪辑之间存在很长的延迟,这些剪辑一起构成一个问题。当它正常工作时,它会像这样:“一加三”,当它不正确时,它会像这样出现:

“一个…………加上………… .........三" 其中句点代表不同长度的长时间停顿。

我想使用 while 循环来继续调用 sp.play() 不是让它连续播放三个声音片段的正确方法,但它是唯一让我接近的东西。

谁能帮助我使用 SoundPool(或其他任何东西)更一致地连续播放三个剪辑?

0 投票
3 回答
2027 浏览

android - SoundPool 类型中的 load(Context, int, int) 方法不适用,getSystemService(String) 方法未定义

注意:我是个菜鸟,所以真的不知道这些错误是什么意思。

这是我的课程代码:

我收到两个错误,第一个错误在这里:

并且错误说The method load(Context, int, int) in the type SoundPool is not applicable for the arguments (MySingleton, int, int) 第二个错误在这里:

错误说The method getSystemService(String) is undefined for the type MySingleton

0 投票
4 回答
924 浏览

soundpool - 如何防止 SoundPool 截断声音

我有一个音板应用程序,我使用 SoundPool 来控制我的声音的播放。一切都很好,直到我尝试添加大约 30 秒长的声音。当我单击该声音的按钮时,它只播放几秒钟然后停止。有没有办法使用 SoundPool 防止这种情况发生?这是我的代码。谢谢!

0 投票
1 回答
627 浏览

android - URI 到资源 ID

我需要将我的 Uri 转换为 Res ID。这可能吗?我需要它,因为我的 SD 卡上有 .mp3,我想将其放入 SoundPool 中,它只需要 Res ID。注意:(不能使用 MediaPlayer,需要 soundpool 功能)

谢谢您的帮助

0 投票
3 回答
8958 浏览

android - Android 在应用程序中加载和播放声音的最快方式

我正在做一个项目,我必须在一个活动中加载 6 种不同的声音,并在单击按钮时播放所有声音。声音文件不是那么大,但问题是它们可能会更多。所以我的问题是这是在单个活动中加载声音文件的最快方法。出于测试目的,我使用 res/raw 文件夹来存储声音文件并尝试使用两种不同的方法来播放文件,但结果并不让我满意。这是两种不同类型的代码:

方法一:

方法二:

但问题是这两种方法都很慢..我需要找到一种更快的方法来播放声音..但是现在我点击按钮播放声音后几乎有一秒钟的时间。

你能给我一些建议如何更快地播放声音吗?我应该在应用程序启动时将它们加载到缓存中还是将它们保存在数据库或其他地方(事实上,我认为数据库不是一个好的选择,但是我想听听一些建议)。或者也许从资产文件夹中加载它们,但我认为它仍然会很慢。

那么有什么想法或建议吗?提前致谢!

0 投票
0 回答
702 浏览

android - Android多个MediaPlayer实例同步?

我需要能够同时播放多首曲目,并以尽可能少的延迟切换到其他曲目。我不认为 SoundPool 会起作用,因为它是真正的音轨,而不是太多的样本。我正在尝试制作某种混音应用程序,您可以在其中选择要播放的某些曲目,而不要播放其他曲目。
关于如何做到这一点的任何想法,建议/提示?

0 投票
3 回答
6057 浏览

android - android soundpool heapsize 溢出

我在Debug中运行时遇到这个错误数百次,它似乎并没有影响程序,但是我该如何摆脱它呢?

我知道它可以根据其他帖子追溯到SoundPool

09-15 09:03:09.190:错误/AudioCache(34):堆大小溢出!请求大小:1052672,最大大小:1048576

0 投票
6 回答
7244 浏览

android - 如何在游戏中正确使用 SoundPool?

我在使用 SoundPool 时遇到性能问题。每次播放声音时,帧速率都会下降。我添加了一些日志,我可以在 logcat 上看到“播放”功能有时需要 8 毫秒。

我正在使用 *.ogg 文件,并且 SoundPool 初始化是在应用程序启动时完成的:

要播放声音,我使用以下代码(在游戏循环内):

我的问题是:

  • 我应该在游戏循环之外的另一个线程上调用“播放”吗?
  • 我应该通过服务调用“播放”吗?
  • 我做错什么了吗?

谢谢!


更新:

我刚刚测试了在另一个线程上播放声音并通过服务播放声音,但延迟仍然存在。

然后我做了以下测试: * 以 1000 毫秒的间隔播放声音 -> 延迟总是发生 * 以 200 毫秒的间隔播放声音 -> 延迟永远不会发生

这怎么可能?!?!?经过这些测试,似乎什么都没有播放的时候,SoundPool正在重置,当它要再次播放时,初始化需要更长的时间……很奇怪!

0 投票
1 回答
470 浏览

android - 如何一个接一个地混合或附加mp3或wave文件并将生成的文件保存到android的SD卡上?

我的 /res/raw 文件夹中有一些 mp3 文件。我正在做的是,每当用户单击一个按钮时,都会播放相应的声音,并且在他完成按下所有按钮后,我想将所有这些 mp3 文件组合在一起并从中制作一个新的音频文件和保存到sd卡。我用谷歌搜索了很多,发现AudioTrack课程SoundPool很有用,但他们无法解决问题。

请帮忙。

0 投票
1 回答
801 浏览

android - Android:按钮单击时的随机声音效果

我正在尝试使用声音池在单击按钮时播放随机声音 FX。这适用于模拟器,但不适用于我的设备。有什么线索吗?