我正在使用带有mediacontroller的视频来播放rtmp,rtsp,m3u8和http流。 问题是他们不能在我的所有设备上工作。有些设备播放所有流,有些设备无法播放rtmp,有些设备只能播放一些rtmp和一些http流,但不是全部播放。
我在想它可能是某种解码/编码问题?所以我希望有人可以给我答案。
我知道有些应用使用相同的流,并且它们可以在我的所有设备上运行,当我第一次加载他们的应用时,它会说“初始化解码器”,但我似乎无法找到任何有用的信息,也许你可以指出我正确的方向。
以下是我用来播放视频的代码:
private void playVideo(string link) {
videoView.setVisibility(VideoView.VISIBLE);
progressBar.setVisibility(ProgressBar.VISIBLE);
if (videoView.isPlaying()) { videoView.stopPlayback(); }
MediaController media = new MediaController(MainActivity.this);
media.setAnchorView(videoView);
media.setFocusable(false);
media.setClickable(false);
media.setLongClickable(false);
videoView.setMediaController(media);
videoView.setFocusable(false);
videoView.setClickable(false);
videoView.setLongClickable(false);
videoView.setVideoPath(link);
videoView.setOnPreparedListener(videoViewPreparedListener);
videoView.setOnCompletionListener(videoViewCompletionListener);
videoView.setOnErrorListener(videoViewErrorListener);
}
答案 0 :(得分:0)
你可以使用vitamino库来获得你想要的功能。你的选项很少,而vitamino库就是其中之一。如果你想与它妥协,它会将你的apk大小增加到8 MB然后它很好。它也有局限性,在极少数情况下它不支持某些cpu架构。总的来说它很好。