Java 使用Google Media Framework Exoplayer的视频播放器空指针异常
我使用示例在我的应用程序中播放视频,我从live JSON获取视频标题和url,以下是我的JSON示例: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.
{
"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;}
)。您使用默认构造函数ppublic 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)))