【发布时间】:2015-10-13 08:41:22
【问题描述】:
这里存在大量类似的问题,遗憾的是没有一个对我有帮助。
我正在尝试同时播放 3 个音频文件,一个是 .wav ,另一个是 .3gp ,另一个是 .mp3 。由于大小超过 1MB ,我不能在这里使用 Android SoundPool 。到目前为止,一切正常,没有任何错误。这是我的代码:
MediaPlayer mp = new MediaPlayer();
MediaPlayer songPlayer = new MediaPlayer();
MediaPlayer voicePlayer = new MediaPlayer();
private String song,voice,text;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_time__date);
String temp;
SharedPreferences preferences1 = getSharedPreferences("musicList", MODE_PRIVATE);
song = preferences1.getString("MUSICONE", "");
SharedPreferences preferences2 = getSharedPreferences("recordList",MODE_PRIVATE);
temp = preferences2.getString("VOICEONE","");
voice = Environment.getExternalStorageDirectory()+"/myAppCache2/"+temp;
SharedPreferences preferences3 = getSharedPreferences("TextList",MODE_PRIVATE);
temp=preferences3.getString("ALARMONE","");
text=Environment.getExternalStorageDirectory()+"/myAppCache/"+temp;
try {
mp.setDataSource(text);
mp.prepare();
mp.setLooping(true);
songPlayer.setDataSource(song);
songPlayer.prepare();
songPlayer.setLooping(true);
voicePlayer.setDataSource(voice);
voicePlayer.prepare();
voicePlayer.setLooping(true);
}
catch (IllegalArgumentException e) {
e.printStackTrace();
} catch (SecurityException e) {
e.printStackTrace();
} catch (IllegalStateException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
mp.start();
songPlayer.start();
voicePlayer.start();
}
现在,我的问题是如何为一个或多个音频文件添加延迟,假设我想在 voicePlayer 再次循环之前为 5000 添加延迟?
【问题讨论】:
-
"由于大小超过 1MB ,我不能在这里使用 Android SoundPool" 你在哪里找到这样的约束?
-
使用 SoundPool 播放的声音文件不应超过 1 MB。 vogella.com/tutorials/AndroidMedia/article.html
标签: android audio android-mediaplayer