如何在Fragment中设置dataData

时间:2014-07-28 09:25:40

标签: android android-fragments video-streaming android-mediaplayer

这是代码,但我一直在setDataSource上收到错误,如果它不在片段中,它会正常运行,所以有人可以告诉我如何使其工作吗? / p>

try {
    player.setAudioStreamType(AudioManager.STREAM_MUSIC);
    player.setDataSource(this, Uri.parse("http://www.example.com/example.mp4"));
    player.setOnPreparedListener(this);
} catch (IllegalArgumentException e) {
    e.printStackTrace();
} catch (SecurityException e) {
    e.printStackTrace();
} catch (IllegalStateException e) {
    e.printStackTrace();
} catch (IOException e) {
    e.printStackTrace();
}

2 个答案:

答案 0 :(得分:2)

更改

player.setDataSource(this, Uri.parse("http://www.example.com/example.mp4"));

player.setDataSource(getActivity(), Uri.parse("http://www.example.com/example.mp4"));

setDataSourceContext的对象作为参数。由于Fragment未展开Context,因此您无法使用this

Activity扩展了Context,因此您可以使用getActivity()

答案 1 :(得分:1)

更改

player.setDataSource(this, Uri.parse("http://www.example.com/example.mp4"));

在片段中:

player.setDataSource(this.getActivity(), Uri.parse("http://www.example.com/example.mp4"));