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

android - Android SoundPool:播放结束时收到通知

这听起来很简单,我不知道为什么我找不到答案哈哈

我有一个有效的声音池类(感谢教程和我所做的一些调整),它运行良好。

现在的问题是我希望能够随机更改我的背景音乐。(并不总是在一个循环中有相同的音乐,而是有 2 个或 3 个,当一个完成时,我播放另外 2 个中的一个)。

问题是我找不到通知音乐已播放完毕的方法。

有任何想法吗 ?

杰森

0 投票
1 回答
540 浏览

android - 加载应用程序后立即开始音频 Android App

我正在创建一个游戏,我在游戏中有一些音频剪辑。我正在使用音频池,我只使用 2 个音频剪辑。它们都是mp3格式,1是700kb,另一个是800字节。

我正在尝试在游戏首次加载时播放 700kb 的音频剪辑。只要应用程序打开,它就会一直循环播放的背景声音。但是我尝试过的一切都失败了。我能够让它工作的唯一方法是在启动时启动一个线程并让线程休眠大约 15 秒。之后它调用开始音频并播放,但如果线程被破坏,它将杀死声音。

我假设音频可能正在缓冲,这就是为什么它在开始时不播放?您还必须从一个线程进行所有音频呼叫吗?

0 投票
2 回答
4856 浏览

android - 了解在 Android 1.6/2.0/2.1 上使用 SoundPool 加载声音是否成功

在 Android 2.2+ 上,有一个名为SoundPool.OnLoadCompleteListener的东西,它允许知道声音是否已成功加载。

我的目标是较低的 API 版本(最好是 1.6,但可以使用 2.1),我需要知道声音是否已正确加载(因为它是由用户选择的)。正确的方法是什么?

我希望不要使用 MediaPlayer 加载声音一次,如果使用 SoundPool 正确?!

0 投票
3 回答
18288 浏览

android - 在 Android 中获取音频文件持续时间的最佳方法是什么?

我正在使用SoundPool 在我的应用程序中播放音频剪辑。一切都很好,但我需要知道剪辑播放何时完成。

目前,我通过使用MediaPlayer实例获取每个剪辑的持续时间来在我的应用程序中跟踪它。这工作正常,但加载每个文件两次看起来很浪费,只是为了获得持续时间。知道文件的长度(可从AssetFileDescriptor获得)我自己可以粗略地计算持续时间,但我仍然需要知道采样率和通道数。

我看到了该问题的两种潜在解决方案:

  1. 确定剪辑何时完成播放(SoundClip 似乎不可能)。
  2. 有一个类可以只加载音频文件的标题并给我采样率/通道数(理想情况下,采样计数以获得确切的持续时间)。

有什么建议么?

谢谢,马克斯

我目前正在使用的代码(工作正常,但为此目的相当沉重):

顺便说一句,这个问题已经被过了,但没有得到答案。

0 投票
0 回答
549 浏览

android - 在设备上测试时出现音量问题

我在我的应用程序中播放了一个非常短且基本的 mp3 音效。在 AVD 模拟器上听起来很棒,但在我的外部设备上根本听不到。我在 Mac OSX 上使用 Eclipse 的 Android 插件,我的外部设备是 HTC Desire。

我正在使用这段代码:

这很简单,应该可以工作。

我还尝试使用 SoundPool。同样,在 AVD 模拟器上听起来应该是这样,但我的移动设备上再次没有设置声音。

在有人问之前,我当然将我的设备音量设置为最大并且没有静音模式或类似的东西。

任何想法?

提前致谢!

0 投票
2 回答
2917 浏览

android - SoundPool 在两种情况下崩溃。第一个场景崩溃的代码

@Ian G. Clifton 这是我尝试过的第一种声音池的代码。当按钮加载activity时程序FCs回到前一个activity。

代码从这里开始,但它不会传输过来:::::::

:::::::::::::::::::活动:::::::::::::::::::::::::

:::::::::::: 尝试过 soundpool 并得到错误日志:::::::::::::::

0 投票
1 回答
546 浏览

android - 如何在 Android 上异步和同时(复音)播放声音?

想象一下一个类似钢琴的基于触摸的应用程序。现在要做的就是将不同的声音文件分配给不同的键。我正在使用 SoundPool 类,但出现以下问题:

  • 声音不会同时播放。我很少听到两种声音同时播放
  • 播放声音时未检测到一些触摸
  • 响应性太差,例如在触摸相应键后大约 200-300 毫秒会播放声音

我见过其他适用于 Android 的钢琴应用程序,它们在这个部门工作得很好,所以我在这里错过了什么?已经感谢您通读。

0 投票
1 回答
1056 浏览

java - android:每次点击播放不同的声音

我有一个按钮,每次点击我都想播放不同的声音。我需要一些帮助才能让第二个声音正常工作。到目前为止,这是我的代码:

0 投票
1 回答
2084 浏览

java - Android:如何循环播放音效?

我有两个声音效果分配给一个按钮。我想知道如何在播放完最后一个音效后循环回到第一个音效。

声音管理器.java

}

0 投票
8 回答
29991 浏览

android - Soundpool sample not ready

I have a .wav file that I'd like to use across my game, currently I am loading the sound in onCreate() of each activity in the game.

The sound will be played once the activity starts.

Problem is at times I will hit the error "sample x not ready". Is it possible to load the .wav file once upon starting the game and keep it in memory and use it later across the game? Or is it possible to wait for 1-2 seconds for the sound to load finish?