Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/216.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android上的VideoView,2个问题_Android_Video - Fatal编程技术网

Android上的VideoView,2个问题

Android上的VideoView,2个问题,android,video,Android,Video,试图得到一个简单的视频剪辑播放循环。我把视频放得很好。然而,我有两个问题 如果用户单击Home按钮,则实际上隐藏了应用程序。然后他们又回到它,视频不见了,无法重新加载。 所有初始化视频的操作都只在保存视频的视图的典型onCreate中进行。我应该从何处调用视频来启动它,以确保它始终实际启动 我只能让设备在从网络上提取视频时才能找到视频。我在日志中看到,当我尝试引用原始文件夹中的剪辑时,它找不到它 VideoView myVideoView = (VideoView)findView

试图得到一个简单的视频剪辑播放循环。我把视频放得很好。然而,我有两个问题

  • 如果用户单击Home按钮,则实际上隐藏了应用程序。然后他们又回到它,视频不见了,无法重新加载。 所有初始化视频的操作都只在保存视频的视图的典型onCreate中进行。我应该从何处调用视频来启动它,以确保它始终实际启动

  • 我只能让设备在从网络上提取视频时才能找到视频。我在日志中看到,当我尝试引用原始文件夹中的剪辑时,它找不到它

           VideoView myVideoView = (VideoView)findViewById(R.id.lighterView);
           myVideoView.setVideoURI(Uri.parse("android.resource://com.android.AndroidVideoPlayer/"+R.raw.[videoclip]));     
           myVideoView.requestFocus();
            myVideoView.start();
    
            myVideoView.setOnPreparedListener(new MediaPlayer.OnPreparedListener() {
               @Override
               public void onPrepared(MediaPlayer myVideoView) {
                    myVideoView.setLooping(true);
               }
            });
    

  • 如果我使用我的网站的URL,上面的代码块可以很好地工作。但是在本地,它找不到剪辑。

    我建议您查看一些关于VideoView的编写良好的代码,而不是在onStart()方法中加载/播放视频,因为将视频连接到界面的最佳方法是管理VideoView(实现surfaceView)回调

    您可以在以下链接中找到一个很好的示例;)


    是的,用onStart()方法加载/播放视频……好的。这似乎很简单。那就够了。谢谢有人知道为什么找不到该剪辑的本地版本吗?在我试图弄清楚这一点的时候,我看到了一些关于“surface view”的东西。简而言之,你能解释一下优势是什么吗?这个应用程序实际上什么也不做,只是在循环中播放视频。没有交互,什么都没有。就我个人而言,我发现SurfaceView的使用非常直观,因为不同的回调是自我解释的(surfaceCreated()---surfaceDestroyed),可以让您轻松地管理视频流。此外,使用这种结构,您不必管理待机状态或类似情况,因为以正确的方式实现surfaceView回调可以确保UI与视频流一致。当然,如果你只需要显示一个简单的视频,考虑到surfaceview使用更多的资源(它有自己的缓冲区),使用view可能会更好。这就是为什么我认为这可能有点过分了。不过,我很感激你的建议。我会阅读链接(你知道的越多…)