1. 程式人生 > 其它 >短視訊平臺搭建,指定視訊中的某一幀做為視訊的封面

短視訊平臺搭建,指定視訊中的某一幀做為視訊的封面

短視訊平臺搭建,指定視訊中的某一幀做為視訊的封面實現的相關程式碼

Glide4.x

Glide4.x提供了frame(@IntRange(from = 0) long frameTimeMicros)方法,可以從提取視訊的第N幀作為圖片載入。

缺點:如果是網路視訊連結,第一次載入會非常慢。

 


val options = RequestOptions()
            .diskCacheStrategy(DiskCacheStrategy.ALL)
            //獲得第1幀圖片 這裡的第一個引數 以微秒為單位
            .frame(1 * 1000 * 1000)
            .placeholder(R.drawable.pic_zwt)
            .centerCrop()
        Glide.with(this)
            .setDefaultRequestOptions(options)
            .load("http://7xjmzj.com1.z0.glb.clouddn.com/20171026175005_JObCxCE2.mp4")
            .into(image1)

​MediaMetadataRetriever

MediaMetadataRetriever類提供了一個統一的介面,用於從輸入媒體檔案中檢索幀和元資料。

 


val retriever = MediaMetadataRetriever()
val url = "http://7xjmzj.com1.z0.glb.clouddn.com/20171026175005_JObCxCE2.mp4"
if (url.startsWith("http")) {
 //setDataSource(String uri,  Map<String, String> headers) 是獲取視訊連結
   retriever.setDataSource(url, emptyMap())
} else {
 //setDataSource(String path)是獲取視訊檔案
 retriever.setDataSource(url)
}     
//獲得第10幀圖片 這裡的第一個引數 以微秒為單位
val bitmap = retriever.getFrameAtTime(10 * 1000 * 1000, MediaMetadataRetriever.OPTION_CLOSEST_SYNC)
retriever.release()
image2.setImageBitmap(bitmap)

以上就是 短視訊平臺搭建,指定視訊中的某一幀做為視訊的封面實現的相關程式碼,更多內容歡迎關注之後的文章