我知道getCurrentPosition()用于返回当前播放的进度值,但是这个值是个什么值呢? 是时间?还是桢数? 如果是时间,那么不同的格式,返回值应该都是相同的
但是我拿2个不同类型的视频进行测试,都是播放一秒后,调用getCurrentPosition()方法获取返回值,但是这个返回值相差很大。测试代码如下:
public static boolean videoSeekTo(Context context, Uri uri, String fileName) throws Exception {
int currentPosition = 0;
int duration = 0;
MediaPlayer mp = new MediaPlayer();
mp.setDataSource(context, uri);
mp.start(); //测试AAC.3gp格式文件
if (fileName = "H264_AAC.3gp")){
mp.pause();
Thread.sleep(MediaNames.PAUSE_WAIT_TIME);
mp.seekTo(0); //设置进度条从0开始播放
mp.start();
Thread.sleep(1000); //sleep 1秒,相当于播放一秒,再获取视频进度值,
currentPosition = mp.getCurrentPosition(); // 这里返回currentPosition值为400
Log.v(TAG,"short position " + currentPosition);
if (currentPosition > 100 )
return true;
else
return false;
} //测试AMR.3gp格式文件
if (fileName = "H264_AMR.3gp")){
mp.pause();
Thread.sleep(MediaNames.PAUSE_WAIT_TIME);
mp.seekTo(0);
mp.start();
Thread.sleep(1000);
currentPosition = mp.getCurrentPosition(); // 这里返回currentPosition值为42
Log.v(TAG,"short position " + currentPosition);
if (currentPosition > 100 )
return true;
else
return false;
}
}搞不懂的是(1)为什么同样都是播放一秒,怎么不同的格式,返回值相差这么多?(2)getCurrentPosition()方法返回的值,比如400,表示的是桢数?时间?还是什么?(3)代码最后判断条件 if (currentPosition > 100 ),如果currentPosition大于100,则测试通过,那么这个100是怎么得出来的?
但是我拿2个不同类型的视频进行测试,都是播放一秒后,调用getCurrentPosition()方法获取返回值,但是这个返回值相差很大。测试代码如下:
public static boolean videoSeekTo(Context context, Uri uri, String fileName) throws Exception {
int currentPosition = 0;
int duration = 0;
MediaPlayer mp = new MediaPlayer();
mp.setDataSource(context, uri);
mp.start(); //测试AAC.3gp格式文件
if (fileName = "H264_AAC.3gp")){
mp.pause();
Thread.sleep(MediaNames.PAUSE_WAIT_TIME);
mp.seekTo(0); //设置进度条从0开始播放
mp.start();
Thread.sleep(1000); //sleep 1秒,相当于播放一秒,再获取视频进度值,
currentPosition = mp.getCurrentPosition(); // 这里返回currentPosition值为400
Log.v(TAG,"short position " + currentPosition);
if (currentPosition > 100 )
return true;
else
return false;
} //测试AMR.3gp格式文件
if (fileName = "H264_AMR.3gp")){
mp.pause();
Thread.sleep(MediaNames.PAUSE_WAIT_TIME);
mp.seekTo(0);
mp.start();
Thread.sleep(1000);
currentPosition = mp.getCurrentPosition(); // 这里返回currentPosition值为42
Log.v(TAG,"short position " + currentPosition);
if (currentPosition > 100 )
return true;
else
return false;
}
}搞不懂的是(1)为什么同样都是播放一秒,怎么不同的格式,返回值相差这么多?(2)getCurrentPosition()方法返回的值,比如400,表示的是桢数?时间?还是什么?(3)代码最后判断条件 if (currentPosition > 100 ),如果currentPosition大于100,则测试通过,那么这个100是怎么得出来的?
解决方案 »
- android手机可以登陆企业outlook吗?
- 用eclipse的编辑tabhost下的其他tab的问题
- 自定义framelayout 动画在其中不能播放求解
- 高分求解答 Android中如何使用listview进行分页
- 用opengl做一个页面翻转的效果,求达人相助
- wap网络模式下播放音视频
- 困惑已久的问题 android中如何调用系统已经开发好的功能~~
- Android开发,在java代码中将ImageView添加到Tablerow中,设置ImageView图片的大小,可是设置完图片不显示
- phonegap+极光推送 调用极光推送远程api实现消息推送功能。
- android studio 编译 出现For input string: "<!"错误,看了2天,不知道是怎么回事,请大神帮忙
- listview的ID为什么必须是"@+id/android:list"
- android calculator的疑惑
8FPS 的文件返回值是:125毫秒为什么桢率越大的,返回值越小? 哪位牛人知道 这个返回值到底跟什么有关系呢?
Since: API Level 1Gets the current playback position.
Returns * the current position in milliseconds api说的很详细,是毫秒数。