videoview 无法播放 rtmp 和其他一些流

videoview failing to play rtmp and some other streams

我正在使用带有媒体控制器的 videoview 来播放 rtmp、rtsp、m3u8 和 http 流。 问题是它们不适用于我的所有设备。有的设备播放所有流,有的不能播放rtmp,有的只能播放部分rtmp和部分http流,但不是全部。

我认为这可能是某种 decoding/encoding 问题?所以我希望那里有人能给我答案。

我知道有些应用程序使用相同的流并且它们在我的所有设备上都可以运行,当我第一次加载他们的应用程序时,它显示 "Initializing Decoders",但我似乎找不到任何有用的信息, 也许你能给我指出正确的方向。

这是我用来播放流的代码:

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);
}

您可以根据需要使用 vitamino 库 functionality.You 对此只有很少的选择,而 vitamino 库是其中之一 it.It 如果您愿意,会将您的 apk 大小增加到 8 MB,然后再增加到您通常的大小与它妥协然后它是 good.Also 它有局限性,在极少数情况下它不支持某些 cpu architecture.Overall 它很好。