Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/215.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/kotlin/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 如何在Exoplayer视频中显示缩略图?_Android_Kotlin_Exoplayer2.x_Video Thumbnails - Fatal编程技术网

Android 如何在Exoplayer视频中显示缩略图?

Android 如何在Exoplayer视频中显示缩略图?,android,kotlin,exoplayer2.x,video-thumbnails,Android,Kotlin,Exoplayer2.x,Video Thumbnails,我想从URL分配视频的预览图像。按“播放”后,它应消失并显示视频。我已经搜索了信息,但我没有找到任何东西,如果有人有任何关于这个主题的更广泛的信息,请告诉我。谢谢大家! 我的代码: val mPlayer: SimpleExoPlayer val inflater = activity?.getSystemService(Context.LAYOUT_INFLATER_SERVICE) as LayoutInflater val contenedor: View = inflater.infla

我想从URL分配视频的预览图像。按“播放”后,它应消失并显示视频。我已经搜索了信息,但我没有找到任何东西,如果有人有任何关于这个主题的更广泛的信息,请告诉我。谢谢大家!

我的代码:

val mPlayer: SimpleExoPlayer
val inflater = activity?.getSystemService(Context.LAYOUT_INFLATER_SERVICE) as LayoutInflater
val contenedor: View = inflater.inflate(R.layout.nota_exoplayer_container, null)
val playerView: PlayerView = contenedor.findViewById(R.id.exoPlayer)
playerView.useController = true
playerView.requestFocus()

val bandwidthMeter: BandwidthMeter = DefaultBandwidthMeter()
val videoTrackSelectionFactory: TrackSelection.Factory = AdaptiveTrackSelection.Factory(bandwidthMeter)
val trackSelector: TrackSelector = DefaultTrackSelector(videoTrackSelectionFactory)
mPlayer = ExoPlayerFactory.newSimpleInstance(activity.applicationContext, trackSelector)

playerView.player = mPlayer
val fullScreenBtn = playerView.findViewById<ImageView>(R.id.exo_fullscreen_icon)

val defaultBandwidthMeter = DefaultBandwidthMeter()
val dataSourceFactory: DataSource.Factory = DefaultDataSourceFactory(
        activity.applicationContext,
        Util.getUserAgent(activity.applicationContext, "VID"),
        defaultBandwidthMeter)

val mediaSource = ExtractorMediaSource.Factory(dataSourceFactory).createMediaSource(Uri.parse(url))
mPlayer.prepare(mediaSource)
val-mPlayer:SimpleExoPlayer
val充气器=活动?.getSystemService(Context.LAYOUT\u充气器\u SERVICE)作为布局充气器
val contendor:View=充气机。充气(R.layout.nota\u exoplayer\u容器,空)
val playerView:playerView=contendor.findViewById(R.id.exoPlayer)
playerView.useController=true
playerView.requestFocus()
val带宽计:带宽计=默认带宽计()
val videoTrackSelectionFactory:TrackSelection.Factory=AdaptiveTrackSelection.Factory(带宽计)
val trackSelector:trackSelector=DefaultTrackSelector(videoTrackSelectionFactory)
mPlayer=ExoPlayerFactory.newImpleInstance(activity.applicationContext,trackSelector)
playerView.player=mPlayer
val fullScreenBtn=playerView.findviewbyd(R.id.exo_全屏_图标)
val defaultBandwidthMeter=defaultBandwidthMeter()
val dataSourceFactory:DataSource.Factory=DefaultDataSourceFactory(
activity.applicationContext,
Util.getUserAgent(activity.applicationContext,“VID”),
默认带宽计)
val mediaSource=extractoremiasource.Factory(dataSourceFactory).createMediaSource(Uri.parse(url))
mPlayer.prepare(mediaSource)
我的布局:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/exoContainer"
    android:orientation="vertical"
    style="@style/ajustar_al_padre">

    <com.google.android.exoplayer2.ui.PlayerView
        android:id="@+id/exoPlayer"
        android:layout_width="match_parent"
        android:layout_height="match_parent"/>
</LinearLayout>

您可以在播放机视图顶部使用低透明度的媒体控制器缩略图,并且可以管理视频预览缩略图。

  • 包装工必须在仪表板清单中写入mimeType“image”的自适应集
  • 然后,您需要创建一个自定义DashManifestParser(),它将从DashManifest中获取“图像”自适应集
  • 将此ManifestParser添加到MediaSource以提取缩略图URL和位置