The Intent 加载时声音不响
Posted
技术标签:
【中文标题】The Intent 加载时声音不响【英文标题】:Sound not ringing on load of The Intent 【发布时间】:2014-10-28 06:46:15 【问题描述】:我正在使用意图从另一个班级调用这个班级,我想在班级加载时播放这首歌“song.ogg”..请帮助我如何??
public class DetlsActivity extends Activity
@Override
protected void onCreate(Bundle savedInstanceState)
super.onCreate(savedInstanceState);
setContentView(R.layout.detls_layout);
getActionBar().setDisplayHomeAsUpEnabled(true);
SoundPool soundPool;
int soundID;
soundPool = new SoundPool(10, AudioManager.STREAM_MUSIC, 0);
soundID = soundPool.load(this,R.raw.song, 1);
AudioManager audioManager = (AudioManager) getSystemService(AUDIO_SERVICE);
//soundPool.play(soundID,1f,1f,1,0,1f);
Toast.makeText(this,"Ringing Song",Toast.LENGTH_LONG).show();
try
AssetFileDescriptor assetFileDescriptor = this.getAssets().openFd("song.ogg");
soundPool.load(assetFileDescriptor,1);
Toast.makeText(this,"Played",Toast.LENGTH_LONG).show();
catch (Exception e)
Log.d("LOGCAT","Exception Song");
【问题讨论】:
您在 LogCat 中是否遇到任何异常? 不,我没有得到任何异常,所以这段代码正确吗?? 我得到的是“响铃”的吐司,而不是“播放”的吐司 你要播放 song.ogg 还是 R.raw.song ?? 我在 res 中创建了一个原始文件夹,并将一个名为 song.ogg 的文件放在 taht 文件夹中。我想播放那个文件.. 【参考方案1】: SoundPool soundPool;
int soundID;
soundPool = new SoundPool(10, AudioManager.STREAM_MUSIC, 0);
Toast.makeText(this,"Ringing Song",Toast.LENGTH_LONG).show();
try
soundID = soundPool.load(this,R.raw.song, 1);
int waitLimit = 1000;
int waitCounter = 0;
int throttle = 10;
while(soundPool.play(soundID, 1.f, 1.f, 1, 0, 1.f) == 0 && waitCounter < waitLimit)
waitCounter++; SystemClock.sleep(throttle);
Toast.makeText(this,"Played "+soundID,Toast.LENGTH_LONG).show();
catch (Exception e)
Log.d("LOGCAT","Exception Song");
Toast.makeText(this,"Exception "+e,Toast.LENGTH_LONG).show();
用上面的代码替换你的代码。当前代码给出警告 soundpool sample 1 not ready 所以使用 while 条件检查。
在这里,您的资源位于原始文件夹中,这就是我们使用soundID = soundPool.load(this,R.raw.song, 1);
的原因。如果您的资源当时在 assets 文件夹中,您可以使用 soundID = soundPool.load(getAssets().openFd("song.ogg"),1);
【讨论】:
谢谢老兄.. 工作得很好:)以上是关于The Intent 加载时声音不响的主要内容,如果未能解决你的问题,请参考以下文章
在 Soundpool 中使用许多声音时,应用程序加载时间是如此缓慢……任何替换?
每当我使用“playsound”在后台播放声音时,我的游戏的其余部分都不会加载