对于媒体播放器中的重复音频,请编写此代码但不能正常工作:
seekBar.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() {
@Override
public void onProgressChanged(SeekBar seekBar, int i, boolean b) {
if (b) {
G.mediaPlayer.seekTo(i);
}
if (i >= G.mediaPlayer.getDuration()) {
if (isRepeat) {
G.mediaPlayer.seekTo(0);
G.mediaPlayer.start();
}else {
G.mediaPlayer.seekTo(0);
G.mediaPlayer.pause();
}
}
}
播放音频,请执行以下操作:
public void playSongWithIndex(final int songIndex) {
progressBar.setVisibility(View.VISIBLE);
if (music_exist.exists()) {
playMusicOfflineMode();
} else {
try {
G.mediaPlayer.reset();
G.mediaPlayer.setDataSource(songList.get(songIndex).getFile_128());
G.mediaPlayer.prepareAsync();
G.mediaPlayer.setOnPreparedListener(new MediaPlayer.OnPreparedListener() {
@Override
public void onPrepared(MediaPlayer mediaPlayer) {
runOnUiThread(new Runnable() {
@Override
public void run() {
}
});
G.mediaPlayer.start();
seekBar.setMax(G.mediaPlayer.getDuration());
progressBar.setVisibility(View.INVISIBLE);
timer = new Timer();
timer.schedule(new MainTimer(), 0, 1000);
}
});
} catch (IllegalArgumentException | IllegalStateException | IOException e) {
e.printStackTrace();
}
}
}
但重复音频有时会完成工作,有时当搜索栏完全停止并且不起作用时。 请帮我怎么重复音频?
答案 0 :(得分:1)
您可以将媒体播放器循环设置为true,使用以下代码:
a.append("<td bgcolor='red'").append(json.get("scenarioName")).append("</td>\n")
如果你想知道玩家何时完成,你应该使用 OnCompletionListener :
<div ng-controller="AccordionDemoCtrl">
<a href="#" editable-text="user.name" onbeforesave="checkName($data)">
{{ user.name || 'empty' }}
</a> <!- wORKS HERE-->
<uib-accordion>
<div uib-accordion-group class="panel-default" is-open="status.open">
<uib-accordion-heading>
<a href="#" editable-text="user.name" onbeforesave="checkName($data)">
{{ user.name || 'empty' }}
</a> <!- NOT wORKS HERE-->
<span ng-click="ignoreClick($event);">
Text accordion
<button ng-click="setMessage();">
Click me
</button>
</span>
<i class="pull-right glyphicon" ng-class="{'glyphicon-chevron-down': status.open, 'glyphicon-chevron-right': !status.open}"></i>
</uib-accordion-heading>
Some stuff
</div>
</uib-accordion>
{{ message }}
</div>
答案 1 :(得分:1)
好的帮助其他开发人员写下我的正确答案:
@Override
public void onCompletion(MediaPlayer mediaPlayer) {
if (isRepeat) {
G.mediaPlayer.start();
} else {
G.mediaPlayer.seekTo(0);
seekBar.setProgress(0);
current_duration_text.setText("" + utils.milliSecondsToTimer(0));
play_music_img.setImageResource(R.drawable.ic_play_arrow_black_24dp);
}
}
我希望有用
答案 2 :(得分:0)
我不确定,但我认为你可以使用循环...例如
mMediaPlayer.setLooping(真);