首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >setVideoURI导致致命信号6(SIGABRT)

setVideoURI导致致命信号6(SIGABRT)
EN

Stack Overflow用户
提问于 2014-10-29 03:05:36
回答 1查看 753关注 0票数 2

我正在测试我不久前创建的一个旧应用程序。该应用程序在光纤WiFi上工作,但如果我使用正常的3G连接,该应用程序崩溃,并显示signal 6 VM错误。我试着隔离问题,我发现它是由setVideoURI方法引起的。

下面是我的代码:

代码语言:javascript
复制
    @Override
    protected void onPostExecute(Void result) {
        // TODO Auto-generated method stub
        super.onPostExecute(result);

        if (videourl != null && videourI != null
                && extracted.contains(".mp4")) {
            videoview.setOnPreparedListener(MainActivity.this);
            mc = new MediaController(MainActivity.this);
            mc.setMediaPlayer(videoview);
            videoview.setVideoURI(videourI);
            videoview.start();
            save.setOnClickListener(MainActivity.this);
      }

这个问题似乎只存在于我的4.4.4版本的Moto G上。这是一个已知的问题吗?有什么变通办法吗?

EN

回答 1

Stack Overflow用户

发布于 2014-11-05 15:47:56

VideoView.setVideoURI()启动了一个用于媒体播放的新线程,但导致额外延迟的是媒体解码部分。因此请尝试在单独线程上运行该方法。

代码语言:javascript
复制
if (videourl != null && videourI != null && extracted.contains(".mp4"))
{
    videoview.setOnPreparedListener(MainActivity.this);
    mc = new MediaController(MainActivity.this);
    mc.setMediaPlayer(videoview);
    new Thread(new Runnable()
    {
        @Override
        public void run()
        {
            videoview.setVideoURI(videourI);  // make videoView final
            runOnUiThread(new Runnable()
            {
                @Override
                public void run()
                {
                    videoview.start();
                    save.setOnClickListener(MainActivity.this);
                }
            });
        }
    }).start();
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26616513

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档