当前位置: 首页 > 知识库问答 >
问题:

Exoplayer源错误

柳灿
2023-03-14

在遵循《开发者指南》中给出的示例之后,我得到了以下信息:

05-23 16:25:22.002 11893-11942/com.app.videotest E/ExoPlayerImplInternal: Source error.


设置:

// 1. Create a default TrackSelector
        BandwidthMeter bandwidthMeter = new DefaultBandwidthMeter();
        TrackSelection.Factory videoTrackSelectionFactory =
                new AdaptiveTrackSelection.Factory(bandwidthMeter);
        TrackSelector trackSelector =
                new DefaultTrackSelector(videoTrackSelectionFactory);

        // 2. Create the player
        SimpleExoPlayer player =
                ExoPlayerFactory.newSimpleInstance(this, trackSelector);

        // Bind the player to the view.
        PlayerView playerView = findViewById(R.id.player_view);
        playerView.setPlayer(player);

        // Produces DataSource instances through which media data is loaded.
        DataSource.Factory dataSourceFactory = new DefaultDataSourceFactory(this,
                Util.getUserAgent(this, "yourApplicationName"), null);
        // This is the MediaSource representing the media to be played.
        MediaSource videoSource = new ExtractorMediaSource.Factory(dataSourceFactory)
                .createMediaSource(Uri.parse("http://clips.vorwaerts-gmbh.de/big_buck_bunny.mp4"));
        // Prepare the player with the source.
        player.prepare(videoSource);

布局:

<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".MainActivity">

    <com.google.android.exoplayer2.ui.PlayerView
        android:id="@+id/player_view"
        android:layout_width="200dp"
        android:layout_height="200dp" />
</android.support.constraint.ConstraintLayout>

完整日志:

05-23 16:25:18.919 11893-11893/? D/AppTracker: App Event: start
05-23 16:25:18.931 11893-11943/? D/OpenGLRenderer: HWUI GL Pipeline
05-23 16:25:18.946 11893-11945/? I/DpmTcmClient: RegisterTcmMonitor from: com.android.okhttp.TcmIdleTimerMonitor
05-23 16:25:18.951 11893-11945/? D/NetworkSecurityConfig: No Network Security Config specified, using platform default
05-23 16:25:18.982 11893-11943/? I/Adreno: QUALCOMM build                   : 08cdca0, I5f270ba9bc
    Build Date                       : 09/18/17
    OpenGL ES Shader Compiler Version: EV031.20.00.04
    Local Branch                     : 
    Remote Branch                    : refs/tags/AU_LINUX_ANDROID_LA.UM.6.5.R1.08.00.00.312.025
    Remote Branch                    : NONE
    Reconstruct Branch               : NOTHING
05-23 16:25:18.982 11893-11943/? I/vndksupport: sphal namespace is not configured for this process. Loading /vendor/lib64/hw/gralloc.msm8996.so from the current namespace instead.
05-23 16:25:18.985 11893-11943/? I/Adreno: PFP: 0x005ff087, ME: 0x005ff063
05-23 16:25:18.990 11893-11943/? I/OpenGLRenderer: Initialized EGL, version 1.4
05-23 16:25:18.990 11893-11943/? D/OpenGLRenderer: Swap behavior 2
05-23 16:25:19.072 11893-11943/? I/vndksupport: sphal namespace is not configured for this process. Loading /vendor/lib64/hw/gralloc.msm8996.so from the current namespace instead.
05-23 16:25:21.057 11893-11920/com.app.videotest I/zygote64: Do partial code cache collection, code=28KB, data=28KB
05-23 16:25:21.059 11893-11920/com.app.videotest I/zygote64: After code cache collection, code=28KB, data=28KB
    Increasing code cache capacity to 128KB
05-23 16:25:22.002 11893-11942/com.app.videotest E/ExoPlayerImplInternal: Source error.

网址肯定有效(我已经尝试了其他几个)。我错过了什么?

更新:
当我在本地加载视频时,播放器确实工作了。不过这并不能解决我的问题。

共有1个答案

莘俊能
2023-03-14

你在用Android8吗?就我而言,我有错误

Caused by: java.io.IOException: Cleartext HTTP traffic to clips.vorwaerts-gmbh.de not permitted

然后,基于此线程,您需要将清单(最简单的清单)修改为:

<?xml version="1.0" encoding="utf-8"?>
<manifest ...>
    <uses-permission android:name="android.permission.INTERNET" />
    <application
        ...
        android:usesCleartextTraffic="true"
        ...>
        ...
    </application>
</manifest>

请参阅上面链接的详细信息

 类似资料:
  • 我正在使用在我的android应用程序中播放视频。我从服务器下载媒体并保存在本地数据库中,在特定的时间报警时,我在exo player中使用播放媒体。但首先我要检查所有的视频文件是否下载,并用下载的媒体源启动播放器。如果有任何视频没有下载,那么我想在下载时在后台下载,然后我想把这个视频添加到我已经创建的播放列表中 这是示例代码 我在这里检查视频文件是否下载 如果没有下载,请帮助如何稍后将丢失的视频

  • 我正在使用ExoPlayer流视频中的回收视图。 我正在ViewHolder中的RecyclerView适配器的绑定方法中实现ExoPlayer。 我使用的视频格式是m3u8,我使用的URL在浏览器中工作。所以我知道视频链接是有效的。我还测试了一个youtube链接。 以下是Recyclerview适配器的ViewHolder中的代码- 当加载我的recyclerview并带着视频进入该行时,我发

  • ExoPlayer 是 Android 上一个应用级的媒体播放器。它为 Android MediaPlayer 的 API 在播放本地或在线的视频与音频上提供了一个候选。ExoPlayer 支持一些 Android MediaPlayer API 无法提供的特性,包括 DASH 和 SmoothStreaming 自适应回放,持久的高速缓存和自定义渲染器。不像 MediaPlayer API,EX

  • 我有一个应用程序,可以显示来自互联网的图片和视频。现在我正在实现一个“保存”功能,将图片/视频保存到外部或内部存储器中,无需再次下载。 对于图片,我只是用抓取绘图。我如何用Exoplayer2. x/PlayerView中当前缓冲的视频实现同样的效果?我没有找到一个函数。

  • 我正在尝试为我们的一个应用程序实现exoplayer 2。 似乎留档和例子比自动播放更复杂的东西是非常差的。 我的问题是,我创建了一个媒体源,并将其设置为播放器,之后我有一个自定义的图标来播放视频,并在结束时寻求回到0。 此外,我还有一个自定义的双搜索杆,当移动它时,它将寻找一个位置,并在选定的开始和结束时间之间剪辑视频。 我不确定在不重新创建整个东西的情况下改变玩家的来源是否可能。 我将我的播放

  • 我试图通过扩展SurfaceView并将ExoPlayer视频渲染到其表面来创建一个非常简单的视图。我想支持HLS,而且只支持HLS。我似乎一直都能听到音频,但我从来没有看到视频被渲染到屏幕上。我很好奇我可能做错了什么。 我在日志中看到的唯一错误是: 下面是我的代码。