问题标签 [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 回答
1434 浏览

android - android.media.SoundPool 会导致内存泄漏吗?

我发现这些代码可能会在 android 2.1 上导致内存泄漏

每次执行后,MAT 插件都会告诉进程的堆中添加了“android:unnamed_thread”的两个 String 对象。这是个问题吗?

0 投票
1 回答
1186 浏览

java - Cupcake(API3)在SoundPool中暂停/停止声音循环的友好方式?有任何想法吗?

快速说明:我正在使用 SoundPool 类

http://developer.android.com/reference/android/media/SoundPool.html

我这里有一个简单的按钮,按下时会播放循环声音。它工作得很好。但是,sounds.autoPause();直到 API 8 才引入,我真的需要与纸杯蛋糕兼容的东西(API 3)所以我正在浏览由 API 3 过滤的开发参考站点,我看到了暂停,所以我想我会尝试sounds.pause(sound);但它没有当我释放它时不要停止声音。(也许我只是用错了?)有谁知道一种对纸杯蛋糕友好的方式来停止这种声音?谢谢!

编辑:也试过sounds.stop(sound);了,也没有用。

编码:

我的创建:

然后这是我的触摸事件

我不明白为什么sounds.stop(sound);似乎不起作用,这似乎是,但我读过的任何文章都建议这样做

我认为值得注意的是,如果我使用sounds.stop(sound);它一次就可以工作,然后在我放手后它不会停止。但第一次按下并发布它按预期工作。

现在,我知道在 andoird 网站上它说的是 streamID 而不是 soundID 但我不知道如何获取 streamID

0 投票
1 回答
1054 浏览

android - SoundPool 声音没有变化

我有一个 soundpool 对象和几个声音,但是一旦创建,我无论如何都无法更改声音播放,例如循环数、音量、停止等。

声明代码:

声音分配代码:

开始/停止代码:

我知道正在调用这些函数,但无论如何都不会导致它发生变化。我也尝试过 setLoop、setVolume、pause 和 unload,但这些都不起作用。

有任何想法吗?

0 投票
2 回答
2566 浏览

android - Android 音池计时

是否有可靠的方法来防止声音池中的声音被截断?我在声音之间的 sleep() 函数上取得了一些成功,但它们有时仍然会在开始另一个声音之前错过最后一点声音。我的应用按顺序播放短声音。杰瑞

0 投票
1 回答
1056 浏览

android - Android - 连续音频播放?

尝试了 soundpool 和 mediaplayer,但无法让声音文件按顺序正确播放而不会重叠。需要能够按顺序播放三个随机选择的音频文件而不会重叠。使用 soundpool 顺序播放音频的任何示例?将不胜感激..似乎这么简单的事情过于复杂..

0 投票
2 回答
2147 浏览

android - 为什么我的 SoundPool 声音没有在 onClick() 中同时播放?

当我点击时,下面的代码导致两个声音不是同时播放,而是顺序播放。为什么它们不能同时播放?

0 投票
1 回答
7733 浏览

android - Android Soundpool 问题

我在 Android Market 上有一个应用程序,并且一直在使用 SoundPool 类来制作音效。我注意到,在 Android API 的所有部分中,这似乎给我带来了最多的问题。例如:

  • HTC Desire 在播放 WAV 文件时出现问题(这会导致它随机锁定)。使用 .ogg 文件可以解决这个问题

  • 在 Droid 上,如果您超过了 init setup 调用中的通道数:

mSoundPool = new SoundPool(4, AudioManager.STREAM_MUSIC, 0);

手机会锁定。如果你能想象调试的难度那!在我不拥有的手机上。这需要我的客户提供很多无私的帮助。将“4”更改为“16”消除了该问题。我毫不怀疑,如果同时播放 16 个声音,它仍然会崩溃。值得庆幸的是,这种可能性很小。

  • 还会在各种设备上随机崩溃。我从我的一位客户那里得到了一份目录,其中包含与播放声音有关的“堆溢出”错误。

我现在已将声音管理器更改为使用 MediaPlayer。目前这似乎效果很好。我只是想知道是否有其他开发人员遇到这些问题?

0 投票
1 回答
8186 浏览

android - Android onLoadCompleteListener如何实现?

我有一个带有 SoundPool 的名为“Sound”的自定义类,我想实现加载完成侦听器,以便我的活动可以播放介绍声音并在加载完成后显示“开始”按钮。

我将如何实现侦听器,然后从我的活动中测试完整状态以确保所有内容都已加载,然后继续执行上述操作。

一个小例子将不胜感激。

MyActivity 创建我的类“Sound”的一个实例,以便它可以从中调用各种声音方法。

其中大多数都不是问题,因为在调用它们时,加载已经完成,但是,我需要 MyActivity 能够在调用之前检查加载是否完成

(例如)。

也许 OnLoadCompleteListener 不是最好的解决方案,我还在学习,所以我对想法持开放态度,这正是我猜应该做的方式。

谢谢

0 投票
1 回答
15680 浏览

android - 播放默认铃声

我一直在尝试使用 SoundPool 播放默认铃声,但没有成功。在下面的代码中

我收到消息“加载内容时出错 /system/ringtone sample 0 not READY”。将 URI 替换为 sd 卡上现有 mp3 文件的硬路径会产生类似的结果。

我究竟做错了什么?谢谢,

凯尔

0 投票
2 回答
4749 浏览

android - 再次关于 SoundPool 的内存问题

我知道 SoundPool 旨在处理类似声音的小型 fx,并且我确保我想按某个顺序一个一个播放的 4 个声音剪辑足够小。

我使用了 ogg 质量 0,剪辑为 35kb、14kb、21kb 和 23kb,总共 92kb 的压缩音频。我不知道如何估计未压缩的大小,但应该不会很多,对吧?

因此,当我按顺序播放 4 个声音时,前 9 次效果很好(9 个序列 x 4 个声音),但开始导致其中一个声音的 9 序列出现记忆问题。当我开始看到错误时,它总是序列 9。

处理它的最佳方法是什么?我有几个想法:

1)进一步压缩声音(ogg质量-1和单声道而不是立体声)

2) 使用 SoundPool.load 和 SoundPool.unload 不断卸载和加载声音

3) 不时释放和重新创建 soundPool 实例

还有什么我可以做的吗?尴尬的是android api不能处理这么小的剪辑。我想知道人们如何制作具有大量音效的游戏...

错误看起来像这样:

错误/AudioFlinger(35): AudioTrack 内存不足 size=1048640 DEBUG/MemoryDe​​aler(35): AudioTrack (0x25018,size=1048576)