Probe不抓帧时UI上清除之前展示的图片;确保抓帧时间点不超过duration

pull/222/head
Qiming 2 years ago
parent 454c18275e
commit becc4e8773
  1. 13
      app/src/main/java/com/frank/ffmpeg/activity/ProbeFormatActivity.kt
  2. 2
      app/src/main/java/com/frank/ffmpeg/metadata/FFmpegMediaRetriever.java

@ -57,9 +57,8 @@ class ProbeFormatActivity : BaseActivity() {
MSG_FINISH -> { MSG_FINISH -> {
progressProbe!!.visibility = View.GONE progressProbe!!.visibility = View.GONE
layoutProbe!!.visibility = View.VISIBLE layoutProbe!!.visibility = View.VISIBLE
val result = msg.obj?: msg.obj if (msg.obj != null) {
if (result != null) { val mediaInfo = JsonParseTool.stringFormat(msg.obj as MediaBean)
val mediaInfo = JsonParseTool.stringFormat(result as MediaBean)
if (!mediaInfo.isNullOrEmpty() && txtProbeFormat != null) { if (!mediaInfo.isNullOrEmpty() && txtProbeFormat != null) {
txtProbeFormat!!.text = mediaInfo txtProbeFormat!!.text = mediaInfo
} }
@ -108,6 +107,7 @@ class ProbeFormatActivity : BaseActivity() {
when (view?.id) { when (view?.id) {
R.id.btn_probe_format -> { R.id.btn_probe_format -> {
findViewById<ImageView>(R.id.img_frame).setImageBitmap(null)
doHandleProbe(filePath) doHandleProbe(filePath)
} }
R.id.btn_retrieve_format -> { R.id.btn_retrieve_format -> {
@ -188,7 +188,12 @@ class ProbeFormatActivity : BaseActivity() {
mHandler.obtainMessage(MSG_INFO, resultBuilder.toString()).sendToTarget() mHandler.obtainMessage(MSG_INFO, resultBuilder.toString()).sendToTarget()
// Retrieve frame with timeUs // Retrieve frame with timeUs
val bitmap = retriever.getFrameAtTime(5 * 1000000) val frameTime = if (duration != null) {
duration.toLong() / 3 * 1000
} else {
5 * 1000000
}
val bitmap = retriever.getFrameAtTime(frameTime)
// Retrieve audio thumbnail, if it has embedded // Retrieve audio thumbnail, if it has embedded
// val bitmap = retriever.audioThumbnail // val bitmap = retriever.audioThumbnail
if (bitmap != null) { if (bitmap != null) {

@ -31,7 +31,7 @@ public class FFmpegMediaRetriever {
public FFmpegMediaRetriever() { public FFmpegMediaRetriever() {
native_init(); native_init();
native_setup(); native_setup();
} }
public void setDataSource(String path) { public void setDataSource(String path) {

Loading…
Cancel
Save