|  |  |  | @ -1,44 +1,52 @@ | 
		
	
		
			
				|  |  |  |  | package com.yinuo.library.vlc; | 
		
	
		
			
				|  |  |  |  | package com.yinuo.library.vlc | 
		
	
		
			
				|  |  |  |  | 
 | 
		
	
		
			
				|  |  |  |  | import android.graphics.Bitmap; | 
		
	
		
			
				|  |  |  |  | import android.graphics.Color; | 
		
	
		
			
				|  |  |  |  | import android.text.TextUtils; | 
		
	
		
			
				|  |  |  |  | 
 | 
		
	
		
			
				|  |  |  |  | import org.easydarwin.util.YUVUtils; | 
		
	
		
			
				|  |  |  |  | 
 | 
		
	
		
			
				|  |  |  |  | import java.text.SimpleDateFormat; | 
		
	
		
			
				|  |  |  |  | import android.graphics.Bitmap | 
		
	
		
			
				|  |  |  |  | import android.graphics.Color | 
		
	
		
			
				|  |  |  |  | import android.text.TextUtils | 
		
	
		
			
				|  |  |  |  | import org.easydarwin.util.YUVUtils | 
		
	
		
			
				|  |  |  |  | import java.text.SimpleDateFormat | 
		
	
		
			
				|  |  |  |  | 
 | 
		
	
		
			
				|  |  |  |  | /** | 
		
	
		
			
				|  |  |  |  |  * Created by John on 2017/2/23. | 
		
	
		
			
				|  |  |  |  |  */ | 
		
	
		
			
				|  |  |  |  | object TxtOverlay { | 
		
	
		
			
				|  |  |  |  |     // 上一次展示的提示文字 | 
		
	
		
			
				|  |  |  |  |     private var mLastShowTip = "" | 
		
	
		
			
				|  |  |  |  | 
 | 
		
	
		
			
				|  |  |  |  |     // 待展示的提示文字 | 
		
	
		
			
				|  |  |  |  |     private var mToDoShowTip = "1111111@2222222@333333" | 
		
	
		
			
				|  |  |  |  | 
 | 
		
	
		
			
				|  |  |  |  | public class TxtOverlay { | 
		
	
		
			
				|  |  |  |  |     // 外部调用,设置待显示水印文字 | 
		
	
		
			
				|  |  |  |  |     fun setShowTip(string: String) { | 
		
	
		
			
				|  |  |  |  |         mToDoShowTip = string | 
		
	
		
			
				|  |  |  |  |     } | 
		
	
		
			
				|  |  |  |  | 
 | 
		
	
		
			
				|  |  |  |  |     String mTip = ""; | 
		
	
		
			
				|  |  |  |  |     long lastTipUpdateTime = 0; | 
		
	
		
			
				|  |  |  |  |     Bitmap bmp; | 
		
	
		
			
				|  |  |  |  |     // 上一次展示的时间 | 
		
	
		
			
				|  |  |  |  |     private var lastTipUpdateTime: Long = 0 | 
		
	
		
			
				|  |  |  |  | 
 | 
		
	
		
			
				|  |  |  |  |     SimpleDateFormat dateFormat = new SimpleDateFormat("yy-MM-dd HH:mm:ss"); | 
		
	
		
			
				|  |  |  |  |     // 文字生成的bitmap | 
		
	
		
			
				|  |  |  |  |     private var bmp: Bitmap? = null | 
		
	
		
			
				|  |  |  |  | 
 | 
		
	
		
			
				|  |  |  |  |     public TxtOverlay() { | 
		
	
		
			
				|  |  |  |  |     } | 
		
	
		
			
				|  |  |  |  |     // 时间格式化字符串 | 
		
	
		
			
				|  |  |  |  |     private val dateFormat = SimpleDateFormat("yy-MM-dd HH:mm:ss") | 
		
	
		
			
				|  |  |  |  | 
 | 
		
	
		
			
				|  |  |  |  |     public Bitmap javaOverlayBm(String txt) { | 
		
	
		
			
				|  |  |  |  |         if (TextUtils.isEmpty(txt)) { | 
		
	
		
			
				|  |  |  |  |             return null; | 
		
	
		
			
				|  |  |  |  |     fun buildOverlayBitmap(): Bitmap? { | 
		
	
		
			
				|  |  |  |  |         if (TextUtils.isEmpty(mToDoShowTip)) { | 
		
	
		
			
				|  |  |  |  |             return null | 
		
	
		
			
				|  |  |  |  |         } | 
		
	
		
			
				|  |  |  |  |         long currentTimeMillis = System.currentTimeMillis(); | 
		
	
		
			
				|  |  |  |  |         val currentTimeMillis = System.currentTimeMillis() | 
		
	
		
			
				|  |  |  |  |         // 限制获取bitmap的频率,保证性能 | 
		
	
		
			
				|  |  |  |  |         if (TextUtils.isEmpty(mTip) || (!txt.equals(mTip) || currentTimeMillis - lastTipUpdateTime > 1000)) { | 
		
	
		
			
				|  |  |  |  |         if (TextUtils.isEmpty(mLastShowTip) || mToDoShowTip != mLastShowTip || currentTimeMillis - lastTipUpdateTime > 1000) { | 
		
	
		
			
				|  |  |  |  |             // 记录更新时间和上一次的文字 | 
		
	
		
			
				|  |  |  |  |             lastTipUpdateTime = currentTimeMillis; | 
		
	
		
			
				|  |  |  |  |             mTip = txt; | 
		
	
		
			
				|  |  |  |  |             lastTipUpdateTime = currentTimeMillis | 
		
	
		
			
				|  |  |  |  |             mLastShowTip = mToDoShowTip | 
		
	
		
			
				|  |  |  |  |             // 文字转bitmap | 
		
	
		
			
				|  |  |  |  |             bmp = YUVUtils.generateBitmap(dateFormat.format(lastTipUpdateTime) + "@" + txt, 40, Color.WHITE); | 
		
	
		
			
				|  |  |  |  |             bmp = YUVUtils.generateBitmap( | 
		
	
		
			
				|  |  |  |  |                 dateFormat.format(lastTipUpdateTime) + "@" + mToDoShowTip, 40, Color.WHITE | 
		
	
		
			
				|  |  |  |  |             ) | 
		
	
		
			
				|  |  |  |  |             // 缩放旋转bitmap | 
		
	
		
			
				|  |  |  |  | //            bmp = YUVUtils.rotateImage(bmp, 0); | 
		
	
		
			
				|  |  |  |  |         } | 
		
	
		
			
				|  |  |  |  |         return bmp; | 
		
	
		
			
				|  |  |  |  |         return bmp | 
		
	
		
			
				|  |  |  |  |     } | 
		
	
		
			
				|  |  |  |  | 
 | 
		
	
		
			
				|  |  |  |  | } | 
		
	
		
			
				|  |  |  |  | } |