我收到 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/