@@ -4,6 +4,8 @@ import android.app.Activity
4
4
import android.content.Intent
5
5
import android.content.res.Resources
6
6
import android.graphics.*
7
+ import android.media.MediaCodec
8
+ import android.media.MediaMetadataRetriever
7
9
import android.media.MediaPlayer
8
10
import android.os.Bundle
9
11
import android.util.Log
@@ -33,6 +35,7 @@ import kotlinx.android.synthetic.main.activity_live.*
33
35
import net.ossrs.rtmp.ConnectCheckerRtmp
34
36
import java.io.File
35
37
import java.io.InputStream
38
+ import java.nio.ByteBuffer
36
39
import java.text.SimpleDateFormat
37
40
import java.util.*
38
41
import kotlin.math.round
@@ -135,13 +138,10 @@ class LiveActivity : AppCompatActivity(), ConnectCheckerRtmp, SurfaceHolder.Call
135
138
.show()
136
139
sdVideoPreview.visibility = View .VISIBLE
137
140
138
- // if (rtmpFile!!.prepareAudio(tmpFile.absolutePath) && rtmpFile!!.prepareVideo(tmpFile.absolutePath)) {
139
- //
140
- // }
141
141
}
142
142
} else {
143
143
runOnUiThread {
144
- Toast .makeText(this , " 剪輯完成檔案 " , Toast .LENGTH_SHORT ).show()
144
+ Toast .makeText(this , " 剪輯完成 " , Toast .LENGTH_SHORT ).show()
145
145
}
146
146
}
147
147
}
@@ -719,7 +719,9 @@ class LiveActivity : AppCompatActivity(), ConnectCheckerRtmp, SurfaceHolder.Call
719
719
private fun openSideVideos () {
720
720
goHome()
721
721
videoList.visibility = View .VISIBLE
722
+ videoList.bringToFront()
722
723
main_control.visibility = View .INVISIBLE
724
+ main_control.bringToFront()
723
725
724
726
data.isSelectEnabled = false
725
727
data.selectedVideoList = MutableList (0 ) { " " }
@@ -732,16 +734,25 @@ class LiveActivity : AppCompatActivity(), ConnectCheckerRtmp, SurfaceHolder.Call
732
734
try {
733
735
val mp = MediaPlayer ()
734
736
mp.setDataSource(it.absolutePath)
735
- i++
736
737
mp.prepare()
737
738
mp.setOnPreparedListener { mediaPlayer ->
739
+ i++
738
740
val time: Int = mediaPlayer.duration
739
741
runOnUiThread {
740
742
addVideoToList(it.nameWithoutExtension, (time / 1000 ), i)
741
743
}
742
744
mediaPlayer.release()
743
745
744
746
}
747
+ mp.setOnErrorListener { mediaPlayer, what, extra ->
748
+ i++
749
+ runOnUiThread {
750
+ addVideoToList(it.nameWithoutExtension, - 1 , i)
751
+ }
752
+ mediaPlayer.release()
753
+
754
+ false
755
+ }
745
756
} catch (e: Exception ) {
746
757
747
758
}
@@ -774,11 +785,15 @@ class LiveActivity : AppCompatActivity(), ConnectCheckerRtmp, SurfaceHolder.Call
774
785
rtmpCamera1 = RtmpCamera1 (rtmpCameraPreview, this )
775
786
rtmpCamera1!! .setReTries(100 )
776
787
777
-
778
788
rtmpFile = RtmpFromFile (rtmpFilePreview, this , this , this )
779
789
780
790
rtmpCameraPreview.holder.addCallback(this )
781
791
792
+
793
+ // var info = MediaCodec.BufferInfo()
794
+ // var buffer = ByteBuffer.allocate(100)
795
+ // rtmpCamera1!!.getVideoData(buffer, info)
796
+
782
797
}
783
798
784
799
override fun onCreate (savedInstanceState : Bundle ? ) {
@@ -876,7 +891,11 @@ class LiveActivity : AppCompatActivity(), ConnectCheckerRtmp, SurfaceHolder.Call
876
891
877
892
var timeText = TextView (this )
878
893
timeText.setTextColor(Color .GRAY )
879
- timeText.text = time.toString() + " s"
894
+ if (time < 0 ) {
895
+ timeText.text = " NaN"
896
+ } else {
897
+ timeText.text = time.toString() + " s"
898
+ }
880
899
timeText.layoutParams = Constraints .LayoutParams (
881
900
ConstraintLayout .LayoutParams .WRAP_CONTENT ,
882
901
ConstraintLayout .LayoutParams .WRAP_CONTENT
0 commit comments