|
@@ -50,40 +50,77 @@ class XSvgPlayer : ConstraintLayout {
|
|
|
if (imGiftModel.svga.isNullOrEmpty()){
|
|
|
return
|
|
|
}
|
|
|
- svgaParser!!.let {
|
|
|
+ svgaParser?.let {
|
|
|
LogUtil.d("svgPlayer","xxx--$isPlaying")
|
|
|
- it.decodeFromURL(URL(imGiftModel.svga),object:SVGAParser.ParseCompletion{
|
|
|
- override fun onComplete(videoItem: SVGAVideoEntity) {
|
|
|
- binding!!.apply {
|
|
|
- val drawable = SVGADrawable(videoItem)
|
|
|
- svgaImageView.visibility = View.VISIBLE
|
|
|
- svgaImageView.setImageDrawable(drawable)
|
|
|
- svgaImageView.loops = 1
|
|
|
- svgaImageView.callback = callback
|
|
|
- LogUtil.d("svgPlayer","onComplete--$isPlaying")
|
|
|
- if (!isPlaying){
|
|
|
- svgaImageView.startAnimation()
|
|
|
- isPlaying = true
|
|
|
+ try{
|
|
|
+ it.decodeFromURL(URL(imGiftModel.svga),object:SVGAParser.ParseCompletion{
|
|
|
+ override fun onComplete(videoItem: SVGAVideoEntity) {
|
|
|
+ binding?.apply {
|
|
|
+ val drawable = SVGADrawable(videoItem)
|
|
|
+ svgaImageView.visibility = View.VISIBLE
|
|
|
+ svgaImageView.setImageDrawable(drawable)
|
|
|
+ svgaImageView.loops = 1
|
|
|
+ svgaImageView.callback = callback
|
|
|
+ LogUtil.d("svgPlayer","onComplete--$isPlaying")
|
|
|
+ if (!isPlaying){
|
|
|
+ svgaImageView.startAnimation()
|
|
|
+ isPlaying = true
|
|
|
+ }
|
|
|
+
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
- }
|
|
|
+ override fun onError() {
|
|
|
+ binding?.apply {
|
|
|
+ isPlaying = false
|
|
|
+ LogUtil.d("svgPlayer","onError--$isPlaying")
|
|
|
+ svgaImageView.visibility = View.GONE
|
|
|
+ nextSvgPlay?.invoke()
|
|
|
+ }
|
|
|
+ }
|
|
|
+ },object:SVGAParser.PlayCallback{
|
|
|
+ override fun onPlay(file: List<File>) {
|
|
|
+ LogUtil.d("svgPlayer","onPlay--${file.size}")
|
|
|
+ }
|
|
|
+
|
|
|
+ })
|
|
|
+
|
|
|
+ } catch (e: Exception){
|
|
|
+ it.decodeFromURL(URL(imGiftModel.svga),object:SVGAParser.ParseCompletion{
|
|
|
+ override fun onComplete(videoItem: SVGAVideoEntity) {
|
|
|
+ binding?.apply {
|
|
|
+ val drawable = SVGADrawable(videoItem)
|
|
|
+ svgaImageView.visibility = View.VISIBLE
|
|
|
+ svgaImageView.setImageDrawable(drawable)
|
|
|
+ svgaImageView.loops = 1
|
|
|
+ svgaImageView.callback = callback
|
|
|
+ LogUtil.d("svgPlayer","onComplete--$isPlaying")
|
|
|
+ if (!isPlaying){
|
|
|
+ svgaImageView.startAnimation()
|
|
|
+ isPlaying = true
|
|
|
+ }
|
|
|
+
|
|
|
+ }
|
|
|
|
|
|
- override fun onError() {
|
|
|
- binding?.apply {
|
|
|
- isPlaying = false
|
|
|
- LogUtil.d("svgPlayer","onError--$isPlaying")
|
|
|
- svgaImageView.visibility = View.GONE
|
|
|
- nextSvgPlay?.invoke()
|
|
|
}
|
|
|
- }
|
|
|
- },object:SVGAParser.PlayCallback{
|
|
|
- override fun onPlay(file: List<File>) {
|
|
|
- LogUtil.d("svgPlayer","onPlay--${file.size}")
|
|
|
- }
|
|
|
|
|
|
- })
|
|
|
+ override fun onError() {
|
|
|
+ binding?.apply {
|
|
|
+ isPlaying = false
|
|
|
+ LogUtil.d("svgPlayer","onError--$isPlaying")
|
|
|
+ svgaImageView.visibility = View.GONE
|
|
|
+ nextSvgPlay?.invoke()
|
|
|
+ }
|
|
|
+ }
|
|
|
+ },object:SVGAParser.PlayCallback{
|
|
|
+ override fun onPlay(file: List<File>) {
|
|
|
+ LogUtil.d("svgPlayer","onPlay--${file.size}")
|
|
|
+ }
|
|
|
+
|
|
|
+ })
|
|
|
+
|
|
|
+ }
|
|
|
|
|
|
}
|
|
|
}
|
|
@@ -129,11 +166,16 @@ class XSvgPlayer : ConstraintLayout {
|
|
|
nextSvgPlay?.invoke()
|
|
|
}
|
|
|
}
|
|
|
+ },object : SVGAParser.PlayCallback{
|
|
|
+ override fun onPlay(file: List<File>) {
|
|
|
+ LogUtil.d("svgPlayer","onPlay--${file.size}")
|
|
|
+ }
|
|
|
+
|
|
|
})
|
|
|
|
|
|
if (handler!= null){
|
|
|
handler.postDelayed({
|
|
|
- if (!callbackExecuted){
|
|
|
+ if (!callbackExecuted && binding?.svgaImageView?.isAnimating == false){
|
|
|
playJoinRoomSvga(userJoinRoomBean)
|
|
|
LogUtil.d("JoinAnimalManager","callbackExecuted")
|
|
|
}
|
|
@@ -159,6 +201,7 @@ class XSvgPlayer : ConstraintLayout {
|
|
|
override fun onFinished() {
|
|
|
isPlaying = false
|
|
|
LogUtil.d("svgPlayer","onFinished--${isPlaying}")
|
|
|
+ binding?.svgaImageView?.pauseAnimation()
|
|
|
binding?.svgaImageView?.visibility = View.GONE
|
|
|
nextSvgPlay?.invoke()
|
|
|
}
|