Exoplayer android流音频

时间:2018-10-25 20:52:21

标签: android exoplayer

下一个问题是,在DataSourceFactory中,当我创建新的DefaultDataSourceFactory时,出现下一个错误“错误的第一个参数类型在Util.getUserAgent中找到了“ android.View.OnClicklistener”必需的“ android ... Context”(this ...)

play.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            BandwidthMeter bandwidthMeter = new DefaultBandwidthMeter();
            final ExtractorsFactory extractorsFactory = new DefaultExtractorsFactory();
            TrackSelection.Factory trackSelectionFactory = new AdaptiveTrackSelection.Factory(bandwidthMeter);
            DataSource.Factory dataSourceFactory = new DefaultDataSourceFactory(this, Util.getUserAgent(this,
                    getPackageName()), bandwidthMeter);
            MediaSource mediaSource = new ExtractorMediaSource(Uri.parse(cuento.getUrl()),
                    dataSourceFactory, extractorsFactory, new Handler(), Throwable::printStackTrace);
        }
    });

为什么?我尝试使用getApplicationContext()或Myclass.this或私有Context mContext,但没有办法解决问题。

1 个答案:

答案 0 :(得分:0)

因为您位于内部类中,所以传递了对内部类的引用,因此您需要调用getContext()YourAcitivty.this

但是根据您的解释,错误是关于Util.getUserAgent的,因此请使用以下代码替换您的代码。

          DataSource.Factory dataSourceFactory = new DefaultDataSourceFactory(getContext(), Util.getUserAgent(getContext(),
                getPackageName()), bandwidthMeter);