这里存在大量类似问题,遗憾的是没有人帮助过我。
我正在尝试同时播放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();
}
现在,我的查询是如何向一个或多个音频文件添加延迟,如果我想在5000
之前为voicePlayer
添加RewriteEngine On
RewriteCond %{HTTP_HOST} ^.+?\.([^.]+\.domain\.com)$ [NC]
RewriteRule ^(.*)$ http://%1/$1 [L,R=301]
的延迟,请再次循环播放?
答案 0 :(得分:0)
现在,我的查询是如何为一个或多个音频文件添加延迟,如果我想在
voicePlayer
再次循环之前为其添加5000的延迟?
您可以删除setLooping
并使用OnCompletionListener
代替。获得onCompletion
回调后,请使用postDelayed
发布再次启动播放器的Runnable
。