当前位置:   article > 正文

安卓使用ExoPlayer出现膨胀类异常

安卓使用ExoPlayer出现膨胀类异常

1.导包

  1. implementation 'com.google.android.exoplayer:exoplayer-core:2.15.1'
  2. implementation 'com.google.android.exoplayer:exoplayer-ui:2.15.1'

2.在Androidifest.xml加入权限,我这里加了忘了与读写权限

  1. <uses-permission android:name="android.permission.INTERNET" />
  2. <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
  3. <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>

 3.布局

  1. <?xml version="1.0" encoding="utf-8"?>
  2. <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
  3. android:layout_width="match_parent"
  4. android:layout_height="match_parent">
  5. <com.google.android.exoplayer2.ui.PlayerView
  6. android:id="@+id/player_view"
  7. android:layout_width="match_parent"
  8. android:layout_height="wrap_content"/>
  9. </RelativeLayout>

这时候我去运行了一下,发现出现报错:
 Error inflating class com.google.android.exoplayer2.ui.SimpleExoPlayerView但是我有这个报错里面的属性。后来经过查询,找到了解决方案,这不是任何开发错误,因为如果它是任何代码错误,那么它应该已经在多个设备上发生。因此,我最后的手段是纠正到底发生了什么。由于应用程序的apk是作为捆绑包上传的,因此如果用户在通过ShareIt或Whatsapp共享捆绑包apk (侧加载)之后安装应用程序,它将崩溃,因为它是应用程序捆绑包的属性,我们不能共享从捆绑包生成的APK。然后我在build.gradle里面加了一句话就可以了。

4.ExoPlayer正常使用,因为我使用的是开发板,所以我直接指定的绝对地址:

  1. package com.example.exoplayer
  2. import android.os.Bundle
  3. import androidx.appcompat.app.AppCompatActivity
  4. import com.google.android.exoplayer2.MediaItem
  5. import com.google.android.exoplayer2.SimpleExoPlayer
  6. import kotlinx.android.synthetic.main.activity_main.*
  7. class MainActivity : AppCompatActivity() {
  8. private var mPlayer: SimpleExoPlayer? = null
  9. override fun onCreate(savedInstanceState: Bundle?) {
  10. super.onCreate(savedInstanceState)
  11. setContentView(R.layout.activity_main)
  12. mPlayer = SimpleExoPlayer.Builder(this).build()
  13. player_view!!.player = mPlayer
  14. //也可以把这个地址替换成网络地址
  15. val videoUrl = "/sdcard/Download/VID_20240229_102508.mp4"
  16. val mediaItem = MediaItem.fromUri(videoUrl)
  17. mPlayer!!.setMediaItem(mediaItem)
  18. mPlayer!!.prepare()
  19. mPlayer!!.play()
  20. }
  21. }

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/我家自动化/article/detail/182024
推荐阅读
相关标签
  

闽ICP备14008679号