Pri*_*alj 18 android audacity bitrate soundpool
我在使用SoundPool时遇到问题,因为它拒绝使用我的.ogg文件.我收到此错误:
AudioFlinger无法创建曲目,状态:-12
创建AudioTrack时出错
我找到了一个关于这个问题的线索,(可能的)答案是:
是这样的吗?(有人请确认或取消)
如果是 - 使用哪个应用程序(Audacity不支持.ogg自定义导出设置).
如果不是 - 还有什么可能是错的?
作为旁注 - 在我使用MediaPlayer之前,但现在我想播放一些并行的声音.
tom*_*101 16
主要编辑:找到一个固定你的日子的方法!滚动下面!!
我和你在同一条船上.在阅读之前,我必须告诉您,我未能提供可以解决此问题的答案.
我已经看过很多关于SoundPool的Stack Overflow主题,但是我没有看到很多与Android书中的Java代码相关的SoundPool问题:
AudioTrack:AudioFlinger无法创建曲目,状态为-12.
SoundPool:创建AudioTrack时出错.
这是从这里提供的Beginning Android 4游戏开发源代码剪下的代码(见下文).你在那里得到了explosion.ogg文件(在trunk中,找到第4章的/ asset文件夹--Android Basics).您必须单击右侧的"查看原始文件"才能获取该文件.
我所做的只是将源代码直接复制到Eclipse中,并将trunk提供的explosion.ogg文件添加到我的项目中.我执行了Android模拟器,尝试播放该文件,我可以告诉你我仍然得到上面引用的相同的Logcat错误.
一个人在Youtube上提供了一个视频,说明SoundPool正常工作.视频链接如下.我做了视频指示我编码的内容,我抓住了我从上面提供的第二个链接获得的相同的explosion.ogg文件.我仍然遇到这些错误:
03-13 05:17:10.143:E/AudioTrack(3370):AudioFlinger无法创建曲目,状态:-12
03-13 05:17:10.143:E/SoundPool(3370):创建AudioTrack时出错
我知道自从Android 1.0以来,SoundPool在API级别1存在.即使我有SoundPool工作的证据(视频链接,第二个),SoundPool也不应该有任何失败的原因.
这些是我的发现,可能会或可能不会以一种好的方式帮助其他人.简而言之,你并不孤单.
资源:
编辑:我能够从SoundPool播放声音.
这是我的代码:
package nttu.edu.test;
import nttu.edu.R;
import android.app.Activity;
import android.media.AudioManager;
import android.media.SoundPool;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.TextView;
public class SoundPoolTest extends Activity implements OnClickListener {
SoundPool soundPool = null;
int explosionId = 0;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
TextView v = new TextView(this);
v.setOnClickListener(this);
setContentView(v);
this.setVolumeControlStream(AudioManager.STREAM_MUSIC);
v.setText("Click anywhere to play the sound.");
}
protected void onResume() {
super.onResume();
if (soundPool == null) {
soundPool = new SoundPool(5, AudioManager.STREAM_MUSIC, 0);
explosionId = soundPool.load(this, R.raw.explosion, 1);
}
}
protected void onPause() {
super.onPause();
if (soundPool != null) {
soundPool.release();
soundPool = null;
}
}
public void onClick(View v) {
if (explosionId != 0)
soundPool.play(explosionId, 1, 1, 0, 0, 1);
}
}
Run Code Online (Sandbox Code Playgroud)
我做的是重构我的代码.我从Youtube视频链接中的一条评论中了解到了这一提示,其中评论的作者名为"ErichLancaster".所有的积分都归他所有.我希望这能帮到你.
我还将Android模拟器分辨率大小设置为QVGA,如果它真的重要或不重要.
| 归档时间: |
|
| 查看次数: |
12485 次 |
| 最近记录: |