Android Vitamio 5.0.0库崩溃

时间:2016-01-04 21:01:23

标签: android live-streaming vitamio

由于开发者控制台中的安全问题,我将谷歌请求的Vitamio 4.2.2更新为5.0.0。但是使用相同的代码,它会像下面那样崩溃:

java.lang.UnsatisfiedLinkError: dlopen failed: library "nulllibstlport_shared.so" not found
at java.lang.Runtime.load(Runtime.java:332)
at java.lang.System.load(System.java:981)
at io.vov.vitamio.MediaPlayer.<clinit>(MediaPlayer.java:257)
at io.vov.vitamio.widget.VideoView.openVideo(VideoView.java:431)
at io.vov.vitamio.widget.VideoView.setVideoURI(VideoView.java:403)
at io.vov.vitamio.widget.VideoView.setVideoURI(VideoView.java:396)
at io.vov.vitamio.widget.VideoView.setVideoPath(VideoView.java:392)
at com.mypackage.myapp.LiveStreamActivity$LiveStreamParse.onPostExecute(LiveStreamActivity.java:131)

当我拨打videoView.setVideoPath(liveStreamUrl);时发生崩溃:

VideoView videoView = (VideoView) findViewById(R.id.vvSurface);
videoView.setVideoPath(liveStreamUrl);
final MediaController mediaController = new MediaController(LiveStreamActivity.this);
videoView.setMediaController(mediaController);
videoView.setVideoLayout(VideoView.VIDEO_LAYOUT_STRETCH, 0);
videoView.requestFocus();
videoView.start();

videoView.setOnPreparedListener(new MediaPlayer.OnPreparedListener() {
    @Override
    public void onPrepared(MediaPlayer mediaPlayer) {
         mediaPlayer.setPlaybackSpeed(1.0f);
    }
});

当我查看Vitamio 5.0.0的样本时,VideoView没有任何变化。所以看起来Vitamio完全毁了自己。即使他们在2015-11-02发布了这个版本,他们仍然将SDK版本定位到API 19.这真是太遗憾了。

除了期待Vitamio团队的适当答案之外,我们还会对这个不幸的问题提出任何建议。

4 个答案:

答案 0 :(得分:1)

因为您的应用似乎无法找到&#34; nulllibstlport_shared.so&#34;本土图书馆。当涉及本地时,指定发生问题的特定设备非常有用。

然而,在Vitamio网站上,他们说lib目前正在支持:ARMv6,VFP,ARMv7,NEON,MIPS,X86等...... 所以我建议你尝试强制你的应用程序包含仅支持ABI的本机库。

为此,您需要将其添加到 app / build.gradle

defaultConfig {
    ...

    ndk {
        abiFilters "armeabi", "armeabi-v7a", "x86", "mips"
    }
}

并在项目的根文件夹中找到 gradle.properties 文件并添加&#39; android.useDeprecatedNdk = true&#39;

# Project-wide Gradle settings.

# IDE (e.g. Android Studio) users:
# Gradle settings configured through the IDE *will override*
...
# org.gradle.parallel=true

android.useDeprecatedNdk=true

但我真的不知道这是否会有所帮助。

答案 1 :(得分:1)

Vitamio 5.0中没有LibsCheck类。 它需要在onCreate函数中运行。

似乎Vitamio 5.0没有被压缩。它不使用ffmpeg库而且无法播放。

答案 2 :(得分:1)

迟到的回复,

但这可行(至少在我遇到同样的错误时为我工作)

 Vitamio.isInitialized(this);

或者

 Vitamio.isInitialized(getApplicationContext());

on onCreate of your activity。

答案 3 :(得分:0)

具体解决这个问题,我所做的是修改位于 src / io / vov / vitamio / 中的文件 MediaPlayer.java 。 第253行说:

String LIB_ROOT = Vitamio.getLibraryPath();

你应该改为:

String LIB_ROOT = "/data/data/your.package.name/lib/";

无论如何,如果你不确定,你可以调试应用程序,只停在该行,变量LIB_ROOT将具有完整的路径。

现在我还有另一个问题就是在这个库中工作。但我希望这有帮助。