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

android - Android,在 soundpool 中播放声音

我下载了一些代码,而不是在本地班级中播放声音,而是调用另一个班级来播放声音,我遇到的唯一问题是它不允许我使用手机上的音量键来调节音量,而我的旧代码在我当地的课堂上允许我这样做。

以旧方式,本地类具有以下代码:

新代码如下所示:

所以我试着像这样改变它:

但是这个getSystemService以红色突出显示,当我将鼠标悬停时它说:

类型 SoundManager 的方法 getSystemService(String) 未定义

该怎么办?谢谢!

0 投票
1 回答
3680 浏览

android - Android 2.2 - SoundPool 示例 0 未就绪

我搜索了 StackOverflow 并找不到像我这样的情况。我正在使用四个按钮,每个按钮播放一个声音文件。
我正在使用 SoundPool:
SoundPool sound = new SoundPool(4, AudioManager.STREAM_MUSIC, 0);

我也在使用OnLoadCompleteListener()其中使用 Log 在 LogCat 中创建 I 通知。
当我在模拟器中启动程序时,我看到所有四个样本都已完成加载。在节目中,三个声音会播放,然而,一个总是说:
WARN/SoundPool(4842): sample 0 not READY

Any Ideas..因为我很吃惊。声音文件是播放方波音调的 16 位 pcm 波形文件。
加载代码:
sound.setOnLoadCompleteListener(new OnLoadCompleteListener(){


播放声音:

0 投票
0 回答
684 浏览

java - 使用 Soundpool 快速播放声音

我正在创建一个应用程序,该应用程序需要每隔约 25 毫秒播放一个或多个声音。(每分钟 300 拍,每拍可能有 8 次“播放”)

起初我使用 SoundPool 来完成这个。我有 3 个线程。一种是更新 SurfaceView 动画,一种是使用 System.nanoTime() 更新时间,另一种是使用 Soundpool 播放声音(mp3)。

这可行,但似乎使用了大量的处理器能力,因为任何时候运行后台进程(例如 WiFi 重新扫描或 GC),它都会开始在这里和那里跳过节拍,这是不可接受的。

我正在寻找替代解决方案。我看过混合和 JET 引擎。

JET 引擎似乎不是一个解决方案,因为它只使用 MIDI。我的应用程序需要高质量的声音(来自实际乐器的录音)。(如果我错了 midi 质量不高,请纠正我)

Android 的混音似乎非常复杂,因为首先您必须获得原始声音(占用大量内存)并在声音之间创建“静音”。我不确定这是否是最优雅的解决方案,因为我的应用程序将具有由用户控制的变速 (bpm)。

如果有人在这方面有经验,我将非常感谢任何建议。

谢谢

0 投票
1 回答
1290 浏览

java - 播放 SD 卡中的音频文件

我想将 SD 卡中的文件和铃声加载到 SoundPool 中。我能够成功获取文件的路径,并且可以使用 MediaPlayer 播放它们。但是,我需要 SoundPool 的功能。我试过 SoundPool.load(String, int) 但它似乎没有加载文件。是否可以将 SD 卡中的文件加载到 SoundPool 中,或者有更好的方法吗?

0 投票
2 回答
613 浏览

android - SoundPool 在其他任务在后台运行时播放良好,在自行播放时中断

最奇怪的事情。播放动画时,我可以清楚地听到我的音效,但是当我没有播放动画时,音效会中断。这是代码:

我已经尝试过: 1. 切换文件 2. 使用 MediaPlayer 3. 删除“spCreatureVoice.stop(...” 4. 更改优先级

0 投票
2 回答
11953 浏览

android - Android 音频:改变音高

SoundPool 的 Android 文档说“该应用程序还可以通过实时调整多普勒或合成效果的播放速率来改变音高”。所以我尝试这样做,使用 setRate 方法从一个音符到另一个音符平滑变化,但结果很糟糕:声音变化非常参差不齐。这是我尝试过的代码。请告诉我是否有更好的方法。

0 投票
1 回答
517 浏览

actionscript-3 - 用于音效的 AS3 对象池

我正在开发一款需要顶级音效的游戏。我为效果创建了一个对象池,以便能够重用它们。我的问题是我应该如何编写一个不错的池解决方案,而不必为每种声音类型创建一个池。pool 的 checkout 函数返回列表中的第一个声音。

这个肮脏的小解决方案检查我们从池中借来的项目是否具有我想要创建的相同声音。如果它是相同的声音,我不会再次创建声音。如果不是,即使我知道池中有正确声音的实例,我也会创建它。

这个肮脏的解决方案已将我的实例从数百个实例减少到大约七个实例,但我认为我可以对其进行更多优化。

我一直在考虑将声音名称传递给结帐功能,但是每次都必须遍历池真的值得吗?

有任何想法吗?

0 投票
1 回答
153 浏览

android - Soundboard App force 关闭,我不知道为什么

所以我一直在为我的孩子们开发一个音板应用程序。这是我的第一个应用程序,因此您可以想象我几乎不知道自己在做什么(菜鸟),所以我提前道歉:-)。我不确定我的问题出在哪里,但我的启动画面运行没有问题,但是当它尝试加载下一个活动时,它会强制关闭。我将在清单中包含应该播放音频的 java 文件和可点击图像的按钮布局。提前致谢!此外,我想将其设置为按钮可以播放与使用 soundpool 的图像相关的随机声音,但又是新手。我对这些错误一点也不熟悉,但我看到 java.land.classcastexception: android.widget.imageview 是 mymenu 活动没有开始的原因。希望有帮助。

0 投票
1 回答
286 浏览

java - 使用带有 URI 的 SoundPool?

有没有办法将声音文件的 URI 加载到 SoundPool 中?我试过poolMap.put(id, spool.load(sfxURI.getPath(), 0));了,但没有用。

0 投票
2 回答
3483 浏览

android - SoundPool 错误:没有更多可用的轨道名称

我在使用 soundpool 类时遇到问题。它是这样的:

在我的游戏应用程序(顺便说一句音乐应用程序)中,我需要同时重现至少 32 个短声音,所以我这样声明我的音池:

之后,我加载了所有需要的 MP3 声音,大约 80 个声音,每个 55KB。我加载所有声音都没有问题,但速度很慢!好吧,这不是问题。真正的麻烦是当我同时播放大约 20 个声音时,我的日志中有一个错误:

之后,我尝试播放的每个声音都会引发相同的错误,并且无法播放任何声音。甚至没有另一个 Activity / soundpool 的声音。我不知道发生了什么或如何解决它!我应该更改声音文件的格式吗?播放声音后我应该释放内存还是什么?

(我在三星 Galaxy S I9000 上测试,2.3.3 OS 系统。应用程序是 2.1)