Kotlin编写一个VideoDialog音视频解析五
这篇文章出了一个意外,意外的让我的文章写好了,没有保存。然后我点击保存也保存不了,我就不小心返回了,结果文章就没有了,所以也就白写了。
公众号这方面值得优化一下,在浏览器的兼容上面做的不是很好,我在chrome浏览器上面写的文章根本没办法发送,所以我就下载了一个火狐浏览器来写文章了。
所以这篇文章就来的晚了一点点,但是还好它还是来了。
今天我们继续来看看kotlin编写的一个视频解析对话框,还是老规矩,先上源码。class VideoDialog : DialogFragment() { companion object { val TAG = VideoDialog::javaClass.name lateinit var file: File fun show(fragmentManager: FragmentManager, file: File) { this.file = file VideoDialog().show(fragmentManager, TAG) } } override fun onCreateDialog(savedInstanceState: Bundle?): Dialog { val view = activity!!.layoutInflater.inflate(R.layout.dialog_video_preview, null) val videoView = view.findViewById(R.id.video_view) val videoInfo = view.findViewById(R.id.video_info) videoView.setVideoPath(file.path) val mediaController = MediaController(activity) mediaController.setAnchorView(videoView) videoView.setMediaController(mediaController) //Close this dialog on completion videoView.setOnCompletionListener { dismiss() } //Show duration of video videoView.setOnPreparedListener { @SuppressLint("SetTextI18n") videoInfo.text = "Duration: ${Utils.milliSecondsToTimer(videoView.duration.toLong())} " } videoView.start() return AlertDialog.Builder(activity) .setView(view) .setTitle("Preview") .setPositiveButton("Cancel") { dialog, which -> dismiss() } .create() } }
这套代码也很简单,里面就是一个DialogFragment弹窗,里面用到了几个安卓跟视频有关系的API,videoView控件,MediaController 视频控制器,用来控制视频的播放和暂停快进等等。
setOnPreparedListener 这个回调主要是在视频加载完毕准备播放的时候回调,这个对话框主要是用来做视频预览的功能,也很简单。
今天就讲解到这里,欢迎大家点击关注,点赞,谢谢了。