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

ExoPlayer不显示资产视频

黄俊智
2023-03-14

嘿,伙计们,我一直试图在exoPlayer中显示视频,因为2天,但没有任何进展,请指导我做错了什么。谢谢提前。

这是我对create函数的代码调用。

 private void initializePlayer() {
    simpleExoPlayerView = findViewById(R.id.exoPlayerView);
    simpleExoPlayerView.requestFocus();
    DataSpec dataSpec = new DataSpec(Uri.parse("assets:///splash_video.mp4"));
    player = ExoPlayerFactory.newSimpleInstance(this, new DefaultTrackSelector(), new DefaultLoadControl());
    simpleExoPlayerView.setPlayer(player);
    final AssetDataSource assetDataSource = new AssetDataSource(this);
    try {
        assetDataSource.open(dataSpec);
        DataSource.Factory factory = new DataSource.Factory() {
            @Override
            public DataSource createDataSource() {
                return assetDataSource;
            }
        };
        player.setPlayWhenReady(true);
        DefaultExtractorsFactory defaultExtractorsFactory = new DefaultExtractorsFactory();
        MediaSource audioSource = new HlsMediaSource(assetDataSource.getUri(), factory, new Handler(), null);
        Log.e(TAG, assetDataSource.getUri().getPath());
        player.prepare(audioSource);
    } catch (AssetDataSource.AssetDataSourceException e) {
        e.printStackTrace();
    }
}

我的图书馆版本是

compile 'com.google.android.exoplayer:exoplayer:r2.5.4'

共有1个答案

唐焕
2023-03-14

DefaultDataSourceFactory支持为资产URI创建数据源。要玩MP4资产,请为玩家准备一个extractoremiaSource,您可以这样创建:

new ExtractorMediaSource(
    Uri.parse("asset://splash_video.mp4"),
    new DefaultDataSourceFactory(context, userAgent),
    new DefaultExtractorsFactory(),
    null,
    null);
 类似资料:
  • 我使用ExoPlayer从URL播放音频。我有XML格式的字幕,看起来像这样: 我知道有一种方法可以在使用ExoPlayer播放时显示字幕。然而,我扫描了《开发者指南:ExoPlayer开发者指南》中的所有内容,但没有找到如何操作,因为文档非常糟糕。另外,字幕的XML格式是否适合ExoPlayer,如果现在,我应该如何转换,以及转换成什么格式。(忍者请帮帮我)

  • 我正在使用ExoPlayer播放视频的应用程序。出于某种原因,当我试图暂停时,视频播放器没有显示播放/暂停图标。我只为播放/暂停做了一个自定义布局,并将其设置在PlayerView上。使用或播放/暂停视频。到处都找不到解决办法,好像我错过了什么,但又不知道是什么。

  • 我已经制作了Hello World RCP应用程序,得到了以下类结构: 向Perspective.createInitialLayout()添加额外代码: 但不显示视图。 我将breakpoint设置到perspective.createInitialLayout()中,发现它没有执行。 我的观点声明是: ApplicationWorkbenchAdvisor.GetInitialWindowPe

  • 我试着把第二个播放器放在一个有圆角的框架内(这个答案和这个答案),但是播放器总是会跳出父框架并绘制视频的完整矩形。 我发现这个解决方案使用GLSurfaceView,但是这个解决方案使用经典的MediaPlayer而不是ExoPlayer。

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

  • 问题内容: 我正在尝试检索对存储在目录中的文件的引用,该文件名为。我尝试这样做如下: 不知何故,当目录中存在do 时,我得到了。我使用和返回数组中的每个元素验证了它。 其中,我尝试获取对PDF文件的引用,然后使用设备上已安装的任何PDF查看器来查看PDF。 我猜想由于前一个问题(检索对文件的引用)返回了,因此下一个被剪切的代码失败了: 有人知道为什么我无法检索对该文件的引用吗?以及为什么我不能使用