- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个按钮,当按下它时,SoundPool 会发出短促的声音效果。该文件是 16k mp3。
声音效果适用于数百次按钮点击,但在某些时候我收到此错误(并且不再为点击播放声音):
E/AudioFlinger( 34): no more track names available
E/AudioTrack( 904): AudioFlinger could not create track, status: -12
E/SoundPool( 904): Error creating AudioTrack
W/AudioFlinger( 34): write blocked for 81 msecs, 4573 delayed writes, thread
xb3f0
创建时:
setVolumeControlStream(AudioManager.STREAM_MUSIC);
soundpool = new SoundPool(10, AudioManager.STREAM_MUSIC, 0);
soundpool.setOnLoadCompleteListener(new OnLoadCompleteListener() {
@Override
public void onLoadComplete(SoundPool soundPool, int sampleId, int status) {
// TODO Auto-generated method stub
loaded = true;
}
});
//save the effect somewhere:
MyUtil.regularSound = soundpool.load(this, R.raw.regular_click,1);
点击:
AudioManager audioManager = (AudioManager) getSystemService(AUDIO_SERVICE);
float actualVol = (float) audioManager.getStreamVolume(AudioManager.STREAM_MUSIC);
float maxVol = (float) audioManager.getStreamMaxVolume(AudioManager.STREAM_MUSIC);
float vol = actualVol/maxVol;
if (loaded) {
soundpool.play(MyUtil.regularSound,vol,vol,1,0,1f);
}
在开始另一个 Intent 之前:
Intent i = new Intent(con, EndScreen.class);
if (soundpool != null) {
soundpool.release();
soundpool = null;
}
startActivity(i);
最佳答案
我刚刚花了几个小时解决同样的问题。
-12 错误表示分配给应用程序的声音内存不足。使用 .finish()
不会释放 SoundPool 的内存。你必须使用 .release()
。
在我的应用程序中,我在启动下一个 Activity 的 onclick 方法上有一个 soundPool.release(),
更改声音格式对我也不起作用。
关于android - SoundPool 停止播放,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12566626/
我正在创建一个游戏,它有一系列声音可以在不同的 Activity 中播放。 在 onCreate 中加载声音会极大地阻碍 FPS,我想知道是否有更有效的加载声音的方法,或者创建一个可以由 Activi
我的应用程序中有一个调用异步任务的按钮。 此异步任务应在每个ProgressUpdate上播放音频文件。 到目前为止,我已经弄清楚了很多,但是我坚持这一点: 我打电话 this.str
我在使用 SoundPool 和 .OGG 文件播放循环声音时遇到问题。我设置了这个 HashMap 来查找与名称关联的声音并播放/停止它 public void playLoopSound(
当我尝试在应用程序中启动声音时,它无法播放。我已经看到该方法确实被调用,但是 soundPool 只是不想播放声音。该应用程序按预期启动,但是,它只是不想播放排队的声音。难道是我做错了什么?我尝试播放
我对java有点陌生,所以如果我犯了一个非常愚蠢的错误,请耐心等待。我正在尝试使用 SoundPool 在计数器应用程序上单击按钮时播放声音,但是单击任一按钮时应用程序崩溃。编译过程中没有出现错误。这
我正在使用SoundPool为了在我的应用程序中使用计时器播放一些声音。有谁知道是否有一个内置队列,它将对文件进行排队并仅在前面的文件完成后才播放它们? 我必须编写自己的 SoundPool 队列实现
我正在尝试播放原始文件夹中的 .mp3 声音,但不知何故无法播放。该代码确实执行了 play 方法,但它不产生声音。这是我的代码: public SoundPlayer(Context context
我有 8 种不同的 Soundpool 噪音,都有自己的搜索栏来控制音量。我有日志显示搜索栏中的数字正在按应有的方式变化,但音量在 90% 的时间里都没有变化(奇怪的是它偶尔会起作用)。 这是设置音量
我有一个 soundpool 对象和几个声音,但是一旦创建我就无法改变声音播放,例如循环次数、音量、停止等。 声明代码: public SoundPool sounds; public HashMap
第一次按下按钮停止声音。但是在那之后按下它没有任何效果。这是我的 Java 代码: public class App extends MultiTouchActivity { SoundPool sp
我正在尝试使用 SoundPool 在我的 Activity 中播放声音,但我听不到声音。 private void beginGame(){ setContentView(R.lay
我有一个按钮,当按下它时,SoundPool 会发出短促的声音效果。该文件是 16k mp3。 声音效果适用于数百次按钮点击,但在某些时候我收到此错误(并且不再为点击播放声音): E/AudioFli
我在onCreate() 方法中写了这段代码,但是没有播放! SoundPool mSound = new SoundPool(1, AudioManager.STREAM_MUSIC, 0);
我有 2 个 SoundPool 实例,如果我运行我的应用程序,soundPool2 运行与 soundPool1 相同的声音,我不知道为什么这播放相同的声音。谁能帮我找出问题所在? public c
我已经阅读了其他帖子,但我仍然不明白如何停止正在播放的声音,我希望当我按下一个按钮时播放声音,当我按下另一个按钮时我希望声音播放别玩了,如果有人能帮助我那就太好了。 最佳答案 您需要创建一个 Stre
我正在制作一款有很多声音的游戏,我使用 Soundpool 来播放它们。在几乎每一个声音中,我都创建了一个新线程,不会在主 UI 线程中加载太多。像这样: public void playSatell
所以我有 soundpool OnLoadCompleteListener,它有这个代码 mStreamId = soundPool.play(sampleId, 1, 1, 1, 0, 1f);我有
Android 的 soundpool.play [文档][1] 说“播放速率允许应用程序改变声音的播放速率(音调)。值 1.0 表示播放以原始频率播放。值为 2.0 表示播放速度加倍,值为 0.5
我正在制作一款应用,您可以在其中选择 1 到 4 种不同的声音并同时播放它们。一切正常,直到我想停止声音,功能停止同时仅适用于一种声音,这是代码(仅适用于 soundpool) sound = new
我是 Android 的新手,所以要温柔点! 我有以下代码,(我认为)应该只是播放“developersshort”。 public constructor(Context context){
我是一名优秀的程序员,十分优秀!