代码之家  ›  专栏  ›  技术社区  ›  j2emanue

下载丢失的编解码器?

  •  0
  • j2emanue  · 技术社区  · 6 年前

    https://github.com/brianwernick/ExoMedia 播放器是android的一种外挂播放器。我认为它不支持编解码器,只会播放音频或什么都没有。如何让它(甚至操作系统)下载丢失的编解码器?

    enter image description here

    代码本身很简单:

     class MediaPlayerActivity : AppCompatActivity(), OnPreparedListener {
    
        private var uri: String = ""
    
        override fun onCreate(savedInstanceState: Bundle?) {
            super.onCreate(savedInstanceState)
            setContentView(R.layout.activity_media_player)
            uri = intent.getStringExtra("uri")
    
            setupVideoView(uri)
        }
    
        private fun setupVideoView(uri: String) {
            videoView.setOnPreparedListener(this)
            videoView.setVideoURI(Uri.parse(uri))
        }
    
        override fun onPrepared() {
            //Starts the video playback as soon as it is ready
            videoView.start()
        }
    
    }
    

    <?xml version="1.0" encoding="utf-8"?>
    
    
    <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:app="http://schemas.android.com/apk/res-auto"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:background="@color/black">
    
        <com.devbrackets.android.exomedia.ui.widget.VideoView
            android:id="@+id/videoView"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            app:useDefaultControls="true" />
    
    </RelativeLayout>
    

    我也在android设备上安装了mx播放器,mx播放器没有提供安装编解码器的服务。相反,它只播放音频,没有视频。另外,如果我打开的mp4在铬它发挥良好。

    1 回复  |  直到 6 年前
        1
  •  1
  •   Morrison Chang    6 年前

    一般的解决方案是为目标客户提供适当的编码视频。这意味着,如果最终用户使用的是按流量计费的数据连接,那么您就不会提供比需要的文件/流更大的文件/流。

    https://developer.android.com/guide/topics/media/media-formats

    但真正的细节列在 Android Compatibility Definition Document (CDD)

    你应该 transcode Display.getSupportedModes() 然后您应该在H.265或VP9中以20 Mbps的速度对视频进行编码。