android studio更改了API< 23的音频播放速度 [英] android studio changing playback speed of audio for API<23
本文介绍了android studio更改了API< 23的音频播放速度的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我想播放一个需要完全控制播放速度的配乐.我尝试了几种在android studio中执行此操作的方法,但遇到了以下问题:
I want to play a soundtrack where I need full control over the playback speed. I have tried several ways to do this in android studio, but I'm facing the following problems:
- 我的API级别是19,所以我无法使用MediaPlayer更改速度
- SoundPool应该会播放短声音,并在播放几秒钟的音乐后停止播放
我还能尝试什么?
推荐答案
类似以下内容:
public class AudioActivity extends Activity {
AudioTrack audio = new AudioTrack(AudioManager.STREAM_MUSIC,
44100,
AudioFormat.CHANNEL_OUT_STEREO,
AudioFormat.ENCODING_PCM_16BIT,
intSize, //size of pcm file to read in bytes
AudioTrack.MODE_STATIC);
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
//read track from file
File file = new File(getFilesDir(), fileName);
int size = (int) file.length();
byte[] data = new byte[size];
try {
FileInputStream fileInputStream = new FileInputStream(file);
fileInputStream.read(data, 0, size);
fileInputStream.close();
audio.write(data, 0, data.length);
} catch (IOException e) {}
}
//change playback speed by factor
void changeSpeed(double factor) {
audio.setPlaybackRate((int) (audio.getPlaybackRate() * factor));
}
}
这篇关于android studio更改了API< 23的音频播放速度的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文