如何解决MediaPlayer错误“无法播放此视频”

时间:2018-03-07 12:16:02

标签: java android android-layout android-mediaplayer

我的视频视图出现了问题。

当我尝试在我的API-27模拟器Android播放消息对话框中播放来自特定网址的视频时

  

无法播放此视频

这就是我在Logcat中得到的东西

  

源返回错误-1010,重试0次

     

initFromDataSource,source没有跟踪!

     

无法从数据源初始化!

     

MediaPlayerNative:错误(1,-2147483648)

     

MediaPlayer:错误(1,-2147483648)

<小时/> 这是我使用videoview的代码

mVideoView = findViewById(R.id.videoView);
        mMediaController = new MediaController(this);
        mVideoView.setVideoPath("https://clips.vorwaerts-gmbh.de/VfE_html5.mp4");
        mVideoView.requestFocus();
        initListeners();

initListeners方法

mVideoView.setOnPreparedListener(new MediaPlayer.OnPreparedListener() {
            @Override
            public void onPrepared(MediaPlayer mp) {
                mVideoView.setMediaController(mMediaController);
                mVideoView.setBackground(null);
                mMediaController.setAnchorView(mVideoView);
                mMediaController.show();
                mVideoView.start();
            }
        });
        mVideoView.setOnCompletionListener(new MediaPlayer.OnCompletionListener() {
            @Override
            public void onCompletion(MediaPlayer mp) {
mVideoView.setBackground(getDrawable(R.drawable.webinar_photo_preview));
            }
        });

我在api23,api24测试我的视频功能,一切听起来都不错。 有人能告诉我我做错了吗?

已编辑:现在我发现错误也出现在api24

2 个答案:

答案 0 :(得分:0)

看起来您的代码工作正常,可能问题是您没有使用在请求时发送到浏览器的Cookie。

  

简单来说,此视频不适用于通过代码直接访问。

如果您仍想尝试以下步骤。

  1. 发出http请求以链接(https://clips.vorwaerts-gmbh.de/VfE_html5.mp4)并存储收到的Cookie。
  2. 如果您想播放视频,请在下次请求时使用收到的Cookie。
  3.   

    注意 - 如果您想使用Cookie播放视频,可以通过ExoPlayer(https://github.com/google/ExoPlayer)完成。

答案 1 :(得分:0)

问题在于VideoView,setVideoPath只设置了少量文件(1 - 2 MB)的视频,如果尺寸较大,MediaPlayer会因MEDIA_ERROR_SYSTEM (-2147483648)而崩溃 - (低级系统错误),read in documentation 。这就是为什么我开始使用exoPlayer。