java - E/ExoPlayerImplInternal : Source error com. google.android.exoplayer2.upstream.HttpDataSource$InvalidResponseCodeException:响应代码:404

标签 java android json retrofit exoplayer

我正在尝试通过 exo 播放器播放视频,但它给了我这个错误:-

E/ExoPlayerImplInternal: Source error.
InvalidResponseCodeException: Response code: 404

这是我的 Activity 类(class):-

public class VideoActivity extends AppCompatActivity implements VideoRendererEventListener {
    private String mVideoUrl;
    private SimpleExoPlayerView simpleExoPlayerView;
    private SimpleExoPlayer player;
    private static final String TAG = "AMAN";


@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_video);

    if (getIntent() != null)
        mVideoUrl = getIntent().getStringExtra("VideoUrl");




    BandwidthMeter bandwidthMeter = new DefaultBandwidthMeter();
    TrackSelection.Factory videoTrackSelectionFactory = new AdaptiveTrackSelection.Factory(bandwidthMeter);
    TrackSelector trackSelector = new DefaultTrackSelector(videoTrackSelectionFactory);


    LoadControl loadControl = new DefaultLoadControl();


    player = ExoPlayerFactory.newSimpleInstance(this, trackSelector, loadControl);
    simpleExoPlayerView = new SimpleExoPlayerView(this);
    simpleExoPlayerView = (SimpleExoPlayerView) findViewById(R.id.player_view);


    simpleExoPlayerView.setUseController(true);
    simpleExoPlayerView.requestFocus();


    simpleExoPlayerView.setPlayer(player);



    Uri mp4VideoUri =Uri.parse(mVideoUrl);

    DefaultBandwidthMeter bandwidthMeterA = new DefaultBandwidthMeter();

    DefaultDataSourceFactory dataSourceFactory = new DefaultDataSourceFactory(this, Util.getUserAgent(this, "exoplayer2example"), bandwidthMeterA);

    ExtractorsFactory extractorsFactory = new DefaultExtractorsFactory();


    MediaSource videoSource = new HlsMediaSource(mp4VideoUri, dataSourceFactory, 1, null, null);
    final LoopingMediaSource loopingSource = new LoopingMediaSource(videoSource);




   player.prepare(loopingSource);
                    player.setPlayWhenReady(true);

}  

有人知道这里出了什么问题吗?

最佳答案

您的链接必须使用“final”修饰符。

`protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_player);

    final String VIDEO_URL = getIntent().getExtras().getString("URL");

    playerView = findViewById(R.id.exo_player);
    simpleExoPlayer = ExoPlayerFactory.newSimpleInstance(this);
    playerView.setPlayer(simpleExoPlayer);
    DataSource.Factory dataSourceFactory = new DefaultDataSourceFactory(this,
            Util.getUserAgent(this, "appname"));
    MediaSource videoSource  = new ExtractorMediaSource.Factory(dataSourceFactory).createMediaSource(Uri.parse(VIDEO_URL));
    simpleExoPlayer.prepare(videoSource);
    simpleExoPlayer.setPlayWhenReady(true);
}`

关于java - E/ExoPlayerImplInternal : Source error com. google.android.exoplayer2.upstream.HttpDataSource$InvalidResponseCodeException:响应代码:404,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45795420/

相关文章:

java - 斯坦福 NER 重新训练的内存要求

java - 如何删除 android 中 Bottom Sheet 单对话框 fragment 创建的阴影?

Android FlowLayout 作为 RecyclerView LayoutManager

Android,如何从列表动态地在另一个位图层上添加一个位图层?

ios - 从 json 数据中拆分 ios 字符串中的字符串?

javascript - 使用 Protovis 的交互式面积图

java - 使用 Spring Data MongoDB 保存模型实例时如何包含方法返回值?

java - 将变量从 Scriptlet 传递到 javascript 代码。

android - 如何使用图像和百分比位置创建 Android 启动画面

c# - 如何在 C# MVC Controller 操作中将动态对象序列化为 JSON?