无法使用 exoplayer 解析方法 getUserAgent()

2024-01-16

我该如何解决

无法解析方法getUserAgent

我试图创建一个视频播放器exoplayer我得到了她的错误String playerInfo = Util.getUserAgent(this, "Video Player");

这是完整的代码

package com.sanoj.myapplication.Activities;

import android.content.Intent;
import android.net.Uri;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;

import com.bumptech.glide.util.Util;
import com.google.android.exoplayer2.ExoPlayer;
import com.google.android.exoplayer2.ExoPlayerFactory;
import com.google.android.exoplayer2.extractor.DefaultExtractorsFactory;
import com.google.android.exoplayer2.extractor.ExtractorsFactory;
import com.google.android.exoplayer2.source.ExtractorMediaSource;
import com.google.android.exoplayer2.source.MediaSource;
import com.google.android.exoplayer2.trackselection.AdaptiveTrackSelection;
import com.google.android.exoplayer2.trackselection.DefaultTrackSelector;
import com.google.android.exoplayer2.trackselection.TrackSelector;
import com.google.android.exoplayer2.ui.PlayerView;
import com.google.android.exoplayer2.upstream.BandwidthMeter;
import com.google.android.exoplayer2.upstream.DefaultBandwidthMeter;
import com.google.android.exoplayer2.upstream.DefaultDataSourceFactory;
import com.sanoj.myapplication.R;

import butterknife.BindView;
import butterknife.ButterKnife;

public class VideoPlayerActivity extends AppCompatActivity {

    Uri videoUri;
    @BindView(R.id.playerView) PlayerView playerView;

    ExoPlayer exoPlayer;
    ExtractorsFactory extractorsFactory;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_video_player);
        ButterKnife.bind(this);
        Intent intent = getIntent();

        if (intent!=null){
            String uri_str = intent.getStringExtra("videoUri");
            videoUri = Uri.parse(uri_str);
        }

        BandwidthMeter bandwidthMeter = new DefaultBandwidthMeter();

        TrackSelector trackSelector = new DefaultTrackSelector(new AdaptiveTrackSelection.Factory(bandwidthMeter));
        exoPlayer = ExoPlayerFactory.newSimpleInstance(this,trackSelector);
        extractorsFactory = new DefaultExtractorsFactory();
        playVideo();

    }

    private void playVideo() {
        try{
            String playerInfo = Util.getUserAgent(this, "Video Player"); //error here
            DefaultDataSourceFactory dataSourceFactory = new DefaultDataSourceFactory(this,playerInfo);

            MediaSource mediaSource = new ExtractorMediaSource(videoUri,dataSourceFactory,extractorsFactory,null,null);

            playerView.setPlayer(exoPlayer);
            exoPlayer.prepare(mediaSource);
            exoPlayer.setPlayWhenReady(true);
        }catch (Exception e){
            e.printStackTrace();
        }

    }

    @Override
    protected void onPause() {
        super.onPause();
        exoPlayer.setPlayWhenReady(false);
    }

    @Override
    public void onBackPressed() {
        super.onBackPressed();
        exoPlayer.setPlayWhenReady(false);

    }
}

为什么我会收到错误或有什么方法可以解决该错误? 或者我做了任何错误配置?有什么想法可以解决这个问题。

我的等级

apply plugin: 'com.android.application'

android {
    compileSdkVersion 28
    defaultConfig {
        applicationId "com.sanoj.myapplication"
        minSdkVersion 15
        targetSdkVersion 28
        versionCode 1
        versionName "1.0"
        testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
}

dependencies {
    implementation fileTree(dir: 'libs', include: ['*.jar'])
    implementation 'com.android.support:appcompat-v7:28.0.0'
    implementation 'com.android.support.constraint:constraint-layout:1.1.3'
    testImplementation 'junit:junit:4.12'
    androidTestImplementation 'com.android.support.test:runner:1.0.2'
    androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.2'


    implementation 'com.google.android.exoplayer:exoplayer:2.7.3'
    implementation 'com.android.support:design:28.0.0'

    implementation 'com.github.bumptech.glide:glide:3.7.0'

    implementation 'com.android.support:recyclerview-v7:28.0.0'
    implementation 'com.android.support:cardview-v7:28.0.0'
    implementation 'com.jakewharton:butterknife:8.5.1'
    implementation 'com.jakewharton:butterknife-compiler:8.5.1'
    implementation 'commons-io:commons-io:2.6'
}

导入正确的Util https://exoplayer.dev/doc/reference-v1/index.html?com/google/android/exoplayer/util/Util.html.

public static String getUserAgent(Context context,
                                  String applicationName)

根据给定的应用程序名称返回用户代理字符串 库版本。

Don't

import com.bumptech.glide.util.Util;

Do

import com.google.android.exoplayer2.util.Util
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

无法使用 exoplayer 解析方法 getUserAgent() 的相关文章

  • 如何在Android中为很长的列表视图上方设置浮动操作按钮的固定位置?

    我正在开发一个 Android 应用程序 主要用于listview 但我在使用时遇到问题Floating Action Button和 一起Long ListView 我的问题如下 当列表视图只有几个项目时 Floating item看得到
  • 如何解决这个 java.nio.BufferOverflowException 错误?

    当我尝试使用 ADT 在 Eclipse 中编译代码时 它向我显示了此错误 2013 12 10 17 55 51 Android SDK Warning when loading the SDK Warning Ignoring buil
  • 使用服务时应用程序终止时音乐暂停

    我正在使用一个Service类在后台播放音乐 当我在顶部显示通知栏时 我的应用程序出现问题 当我终止该应用程序时 音乐停止约 1 秒 然后再次开始 我不知道出了什么问题 我正在关注this https www simplifiedcodin
  • 如何从活动启动另一个应用程序(下载或预安装)?

    基本上 我想获取所有已安装应用程序的列表 并选择一个从活动中运行 我尝试过使用 Intents 进行 ACTION PICK 但这似乎遗漏了已下载的应用程序 并且其中有一堆垃圾 Thanks to get the list of apps
  • Android 应用内购买

    我正在尝试开发一个停车应用程序 用户可以在其中为停车时间付费 我浏览了这份文件应用内产品 http developer android com google play billing billing overview html produc
  • OpenCV warpPerspective 性能缓慢

    在我的应用程序中 我跟踪一个物体 到达它的地方corners都在这个框架中 我发现它之间的单应性corners从最后一帧开始和 当前帧 使用单应性来做perspectiveTransform on the corners在当前帧中找到 得到
  • 如何通过单击颤动推送通知来打开特定屏幕

    我试图在单击推送通知时打开特定屏幕 我的有效负载如下所示 var payload notification title notificationTitle body notificationMessage click action scre
  • 如何使用baseadapter自定义listview

    我想创建一个定制的ListView像这样 我想我必须使用BaseAdapter但我对此一无所知 主要 xml
  • Google 语音识别器无法在 Android 4.x 上启动

    我偶然发现了这个随机问题 这是我的代码 mSpeechRecognizer SpeechRecognizer createSpeechRecognizer mContext initializeRecognitionListener mSp
  • 通过 Wi-Fi 的 ADB 在一台 PC 上非常慢,但在另一台 PC 上则非常慢

    我正在尝试学习如何为 Android 进行开发 并且我希望能够在我的设备而不是模拟器上进行测试 我手机上的 USB 端口变得非常松动 我不想在使用它进行测试的数十个小时中弄乱它 我在桌面上通过 Wi Fi 启用了 ADB 它运行得非常完美
  • 具有待处理意图的警报管理器

    下面的代码片段 public void onCreate Bundle savedInstanceState super onCreate savedInstanceState setContentView R layout main Do
  • Android 设备上的 Facebook 分享问题

    我使用了来自的样本AndroidFacebook示例 https github com ddewaele AndroidFacebookSample它在模拟器上运行良好 但在设备上它被转移到内置的 Facebook 意图 设备上不会出现身份
  • android-透明RelativeLayout

    我想要制作一个具有可绘制渐变作为背景的活动 并将在其背景顶部显示 4 个面板 相对布局 现在我想让 4 个面板透明 例如 50 以便也可以看到渐变背景 我搜索了谷歌 但我发现只能通过活动而不是布局来做到这一点 如何做我想做的事 您可以创建一
  • 在 Android 应用程序中集成 Facebook 和 LinkedIn

    我有一个集成了 Facebook 和 LinkedIn 网络的应用程序 根据说明 为了集成 LinkedIn 我需要在我的活动中的清单中添加以下代码
  • 在 Android 媒体播放器上播放 MediaStore 中的音频

    有没有办法通过使用 MediaPLayer 播放从 MediaStore 获得的音频 或者我走的方向完全错误 到目前为止 我已经查看了 MediaStore Audio 但没有什么能真正帮助我 我只需要知道我是否走在正确的轨道上 首先 我假
  • 更改图库中的边框样式

    我正在服用this http www androidpeople com android gallery imageview example 教程 正如你所看到的this http www androidpeople com wp cont
  • 如何使用抽屉布局左侧移动主要内容

    刚刚检查了如何使用 DrawerLayout 制作菜单here http www androidhive info 2013 11 android sliding menu using navigation drawer 但左侧菜单正在移动
  • 旋转 LayerDrawable 中的单个 RotateDrawable

    我正在构建一个带有某种指南针的应用程序 并且我想使用 LayerDrawable 来绘制指南针并为其设置动画 LayerDrawable 由用于指南针背景的静态背景图像和用于旋转部分的 RotateDrawable 组成 这是我的可绘制资源
  • 如何等待 Kotlin 协程完成

    我读过几十篇文章 但不知何故 没有一个答案似乎适用于我的情况 我想要实现的是在Fragment中等待ViewModel使用Room执行操作 Dao Query SELECT FROM my table WHERE id id suspend
  • 是否可以从 Android Studio 恢复被覆盖的文件?

    由于错误 我覆盖了我的两个来自 android studio 的具有相同名称的项目 并且今天我已经取消了该操作 我尝试打开主项目 但发现其中没有 Java 类 只有布局文件 在我覆盖的第二个项目中 文件存在巨大混乱 并尝试使用 Androi

随机推荐