我知道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 wifi流量统计
- 运行简单的Jbox2d程序报缺少AABB class
- android媒体库的问题
- Android OS能不能在XP装有虚拟机的环境下编译通过?XP下虚拟机一般用那个?虚拟机上装的LINUX OS一般用那个版本?
- 求设置textview的背景色为透明的方法
- 实现Android手机同屏操作
- 求ANdroid x86解析,帅哥美女们发表一下!
- 如何同时发送短信到多个联系人?
- windows下解压system.img文件,如何保持权限?有没有人知道啊?
- 求教Android蓝牙与多个设备连接问题
- listview的ID为什么必须是"@+id/android:list"
- android calculator的疑惑
8FPS 的文件返回值是:125毫秒为什么桢率越大的,返回值越小? 哪位牛人知道 这个返回值到底跟什么有关系呢?
Since: API Level 1Gets the current playback position.
Returns * the current position in milliseconds api说的很详细,是毫秒数。