当播放mediaplayer
时,seekto()
方法可以很好地工作。如果MediaPlayer
被暂停,当我找到一个位置并调用start()
时,它就会在它暂停的地方开始播放。
我的代码如下所示,在logcat中,我可以看到它正在寻找。
@Override
public void onStopTrackingTouch(SeekBar seekBar) {
// TODO Auto-generated method stub
if(player == null || player.mediaPlayer == null){
return;
}
Log.e("player status", "status is " + PlayerStatusCache.playerStatus);
if(durationProgress < player.mediaPlayer.getDuration()){
player.mediaPlayer.seekTo(durationProgress);
Log.e("player", "seeking");
} else {
player.mediaPlayer.seekTo(player.mediaPlayer.getDuration() - 1000);
}
}
由于某些原因,在某些设备上:SystemClock.sleep(200)
是必需的,因为在seekTo真正完成之前播放机调用onseekComplete(MediaPlayer arg0)
太快了。
mMediaPlayer.setOnSeekCompleteListener(new MediaPlayer.OnSeekCompleteListener() {
@Override
public void onSeekComplete(MediaPlayer arg0) {
Log.d(TAG, "onSeekComplete() current pos : " + arg0.getCurrentPosition());
SystemClock.sleep(200);
mMediaPlayer.start();
}
});
try {
mMediaPlayer.seekTo(mCurrentPos);
} catch (IllegalStateException e){
Log.d(TAG, e.getLocalizedMessage(), e);
}
我正在使用AudioPlayer包来开发音频/媒体播放器。要从资产文件夹加载音乐,我使用AudioCache类,并使用其他方法(暂停、停止和持续时间),我使用AudioPlayer。 当我单击按钮播放音乐时,它可以完美地工作,但是当我再次单击该按钮以暂停音乐时,它根本不起作用(音乐继续播放),并且单击时两个图标都没有更改 我做错了什么? 这是代码
暂停脚本的当前线程。 #p::Pause ; 按一次 Win+P 会暂停脚本. 再按一次则取消暂停. Pause [, On|Off|Toggle, OperateOnUnderlyingThread?] 参数 On|Off|Toggle 如果为空或省略, 则它默认为 Toggle. 否则, 请指定下列单词的其中一个: Toggle:如果在当前线程下的潜在线程处于运行状态,则暂停当前线程,否则让潜
问题内容: 最近,我开始将ucos-ii移植到Ubuntu PC。 众所周知,在ucos-ii中无法通过在pthread的回调函数中的“ while”循环中添加一个标记来执行暂停和恢复来模拟“进程”,以执行暂停和恢复操作(类似于下面的解决方案)。因为ucos- ii中的“进程”可以随时暂停或恢复! 我在下面的网站上找到了一种解决方案,但是由于过时而无法构建。它使用Linux中的进程来模拟ucos-
1.若要暂停训练,请按下该按钮。显示暂停。若要继续训练,请点击绿色箭头图标。 2.若要停止训练,在记录训练期间或处于暂停模式时长按该按钮三秒钟,直至计数器清零。或者您可以点击并按住显示屏上的红色停止按钮。 如果在暂停后停止训练,则暂停后经过的时间不包括在总训练时间内。
若要暂停训练 长按正面按钮 或 在训练视图中向右滑动,找出并轻触暂停图标。 通过向左滑动您可以在暂停模式中看到训练总结。 恢复暂停的训练 轻触绿色箭头图标。 停止训练 在训练期间或在暂停模式中,长按正面按钮直至绿色计时器一直倒数。 或 在暂停模式中,轻触并按住红色停止图标可结束记录。
1.若要暂停训练,请按“返回”按钮。显示“记录已暂停”。若要继续训练,请按“开始”。 2.若要停止训练,在训练记录或处于暂停模式时长按“返回”按钮三秒钟,直到显示“记录已结束”。 如果在暂停后停止训练,则暂停后经过的时间不包括在总训练时间内。