Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/183.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
Java 使用Google Media Framework Exoplayer的视频播放器空指针异常_Java_Android_Json_Android Video Player_Exoplayer - Fatal编程技术网

Java 使用Google Media Framework Exoplayer的视频播放器空指针异常

Java 使用Google Media Framework Exoplayer的视频播放器空指针异常,java,android,json,android-video-player,exoplayer,Java,Android,Json,Android Video Player,Exoplayer,我使用示例在我的应用程序中播放视频,我从live JSON获取视频标题和url,以下是我的JSON示例: { "videos": [ { "title":"Video 1", "url":"88.mp4" }, { "title":"Video 2", "url":"l5.mp4" } ]} 这就是我的代码的样子: MainActivity.java: JSONObject jsono = new JSONObject(data); JSONArray jarray = jsono.

我使用示例在我的应用程序中播放视频,我从live JSON获取视频标题和url,以下是我的JSON示例:

{
"videos": [ 
{
"title":"Video 1",
"url":"88.mp4"
},
{
"title":"Video 2",
"url":"l5.mp4"
}
]}
这就是我的代码的样子:

MainActivity.java:

  JSONObject jsono = new JSONObject(data);
  JSONArray jarray = jsono.getJSONArray("videos");

  for (int i = 0; i < jarray.length(); i++) {
       JSONObject object = jarray.getJSONObject(i);

       Videos video = new Videos();

       video.setTitle(object.getString("title"));
       video.setUrl(object.getString("url"));

       videosArrayList.add(video);
   }

我写了我认为应该写的代码,所以我可以知道我遗漏了什么吗?我错过了什么?我如何解决它呢?

当你在
doinbackground
方法中获取响应时,你创建了
Videos
对象,并将标题和url放在其中,但当你创建播放器时,你尝试在调用
videosArrayList.get(i).getVideo()
时获取
Video
对象,但它从未设置过。在这一点上是您的NullPointerException。

在这部分代码中

Videos video = new Videos();

video.setTitle(object.getString("title"));
video.setUrl(object.getString("url"));

videosArrayList.add(video);
您从不在
视频
对象
视频
中指定
视频
字段(从不调用
public void setVideo(Video Video){this.Video=Video;}
)。您使用默认构造函数p
public Videos(){}
将字段
video
初始化为
null

要解决此问题,请添加此行

video.setVideo(new Video(object.getString("url"),VideoType.MP4)))

苏菲,我跟你解释的完全一样,但可能你不明白我的答案。祝你有一个愉快的一天:)如果我想在默认情况下播放视频,当我点击列表项,就像我仍然点击列表项>然后我必须点击视频播放器中的播放按钮。。。现在,我希望无论何时用户点击列表项,然后播放视频不需要显示播放按钮来播放视频…您不是已经在这里执行了吗
public void onnimclick(…imaPlayer.play();…
?是的,我不明白您的答案,但无论如何,我勾选了您的答案作为有用…谢谢
video.setVideo(new Video(object.getString("url"),VideoType.MP4)))