android - MediaHTTPConnection : readAt 1343667/32768 => java.net.ProtocolException

标签 android android-mediaplayer android-videoview protocolexception

我收到 java.net.ProtocolException对于一些视频。这就是将 URL 传递给 videoview 的方式.以前有人遇到过这种情况吗?

videoview.setVideoURI(videourl);

最佳答案

经过几轮调试,我发现这是由于不支持的视频格式。 Android 默认的 Mediaplayer 或 Videoview 不支持所有格式,例如:MOV。

通过使用 exoplayer你可以克服这个问题。
请检查支持的格式here .

 private void initializePlayer(String downloadedFile) {

    player = ExoPlayerFactory.newSimpleInstance(this);
    player.addListener(eventListener);

    DefaultHttpDataSourceFactory dataSourceFactory = new DefaultHttpDataSourceFactory(Util.getUserAgent(this, "Player"));

    ExtractorsFactory extractorsFactory = new DefaultExtractorsFactory();


    MediaSource videoSource = new ExtractorMediaSource(streamurl,
            dataSourceFactory, extractorsFactory, null, null);


    player.prepare(videoSource, false, false);
    player.setPlayWhenReady(true);

    videoview.setShutterBackgroundColor(Color.TRANSPARENT);
    videoview.setPlayer(player);
    videoview.requestFocus();
}


@Override
public void onLoadingChanged(boolean isPlaying) {
    Log.d(TAG,"videoplaying onLoadingChanged::"+isPlaying);
}

@Override
public void onPlayerStateChanged(boolean playWhenReady, int playbackState) {
    if (playbackState == ExoPlayer.STATE_BUFFERING){
      //show progressbar
    } else {
        //dismiss progressbar
    }
}

}

关于android - MediaHTTPConnection : readAt 1343667/32768 => java.net.ProtocolException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55175391/

相关文章:

android - Android是否支持HLS Adaptive Bitrate Streaming

Android VideoView简历和seekTo

java - 发送带有 boolean 值的模型类以改进有时不接受该 boolean 值的端点

java - Dagger 2 注入(inject)子类

android - 在自动更新的情况下,Google Play 是否要求像内置权限一样接受自定义权限

java - 安卓;按钮声音在默认按钮声音后播放

android - 如何在 Android 中流式传输时动态更改 MediaCodec 编码比特率?

android - 退出应用程序或电话铃声时媒体播放器停止播放歌曲

android - 如何通过中心裁剪和适合宽度/高度来适应动态壁纸中的视频?

android - 如何使用videoview在android中播放流?无法在客户端打开文件,尝试在服务器端