我自己创建一个VideoView
的控制器(我知道使用Controller
更容易,但它是学校的家庭作业),因此应用程序外观如下({{1使用VideoView
和3 SeekBar
)
在Buttons
方法中,我编写了此代码
onCreate
但VideoView vwVideo = (VideoView) findViewById(R.id.videoView);
vwVideo.setVideoPath("android.resource://" + getPackageName() + "/" + R.raw.baby);
SeekBar skbPosition = (SeekBar) findViewById(R.id.seekBarVideo);
skbPosition.setMax(vwVideo.getDuration());
返回-1,可能是因为视频尚未加载(* .mp4,4.47 MB,00:01:44),所以我决定设置{{的最大值1}}单击“播放”按钮但我不知道这是否是解决问题的最佳方法。
有更好的解决方案吗?
答案 0 :(得分:1)
如果您想获得视频的持续时间,可以使用MediaMetadataRetriever执行此操作。
MediaMetadataRetriever retriever = new MediaMetadataRetriever();
//use setDataSource() functions to set your data source
retriever.setDataSource(context, Uri.fromFile(videoFile));
String time = retriever.extractMetadata(MediaMetadataRetriever.METADATA_KEY_DURATION);
long timeInMillisec = Long.parseLong(time);
如果有任何问题,请更新我。