[英]Streaming audio file to soundpool load() Android
我想使用SoundPool类来创建播放速度效果。 快速或缓慢播放声音(1x,0.5x,2x等)。 但是问题是Soundpool只处理小文件。 当我给一个大文件。 它没有任何作用。 我想知道是否可以加载音乐流(我的大型音频文件的某些字节)并通过声音池播放它。 任何想法。??
这是我的soundPool播放歌曲的代码
AudioManager mgr = (AudioManager)getSystemService(Context.AUDIO_SERVICE);
float streamVolumeCurrent = mgr.getStreamVolume(AudioManager.STREAM_MUSIC);
float streamVolumeMax = mgr.getStreamMaxVolume(AudioManager.STREAM_MUSIC);
float volume = streamVolumeCurrent / streamVolumeMax;
soundID = soundPool.load(Environment.getExternalStorageDirectory()+"/cm.mp3", 1);
soundPool.play(soundID, volume, volume, 1, 0, 1.0f);
我找到了JetPlayer和AudioTrack类,但是我找不到任何好的教程来解决这个问题。
您需要先检查文件是否已成功加载,然后再使用SoundPool.setOnLoadCompleteListener进行播放
public void loadSound (String strSound, int stream) {
boolean loaded = false;
mSoundPool.setOnLoadCompleteListener(new OnLoadCompleteListener() {
@Override
public void onLoadComplete(SoundPool soundPool, int sampleId,
int status) {
loaded = true;
}
});
try {
stream= mSoundPool.load(aMan.openFd(strSound), 1);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
// Is the sound loaded already?
if (loaded) {
mSoundPool.play(stream, streamVolume, streamVolume, 1, LOOP_1_TIME, 1f);
}
}
阿曼在哪里
AssetFileDescriptor aMan = getAssets();
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.