Chrome-cast应用在投放到电视后崩溃了

时间:2014-03-18 08:46:55

标签: android google-cast chromecast

我正在修改CastAndroid-Videos应用,这样我就不会在JSON请求中显示列表,而是将接受任何视频网址的文本框放到电视上。

所以根据我修改VideoBrowserListFragment.java如下

public View onCreateView(LayoutInflater inflator,ViewGroup container,Bundle saveInstanceState)
{
View v=inflator.inflate(R.layout.videourl, container,false);

mm=new MediaMetadata(MediaMetadata.MEDIA_TYPE_MOVIE);
mm.putString(MediaMetadata.KEY_SUBTITLE, "Some text");
mm.putString(MediaMetadata.KEY_TITLE, "Some string");
mm.putString(MediaMetadata.KEY_STUDIO, "Something");
mm.addImage(new WebImage(Uri.parse("Some image URL")));
mm.addImage(new WebImage(Uri.parse("Some image URL")));

submit=(Button)v.findViewById(R.id.submit);
url=(EditText)v.findViewById(R.id.texturl);
submit.setOnClickListener(new OnClickListener() {

    @Override
    public void onClick(View v) {
        // TODO Auto-generated method stub
        info=new MediaInfo.Builder(url.getText().toString())
            .setStreamType(MediaInfo.STREAM_TYPE_BUFFERED)
            .setContentType("video/mp4")
            .setMetadata(mm)
            .build();

        Toast.makeText(getActivity(), "Info:"+info.getContentId(), Toast.LENGTH_LONG).show();

        Intent intent = new Intent(getActivity(), LocalPlayerActivity.class);
        intent.putExtra("media", Utils.fromMediaInfo(info));
        intent.putExtra("shouldStart", false);
        getActivity().startActivity(intent);
        }
});


return v;

}

但是在投放到电视之后,应用程序会在视频继续在电视上播放时崩溃。测试时我没有主机,所以我不能把log cat。

我没有在整个应用程序中更改任何内容。所以有人告诉我哪里出错了?

1 个答案:

答案 0 :(得分:0)

最简单的选择是将这些函数复制到您的类:buildMediaInfo和handleNavigation。 提交时请执行以下操作:

String url = ... //get url from textbox

//
MediaInfo selectedMedia = buildMediaInfo("custom video",
                        "none", "none", url, link_to_some_image, link_to_some_big_image);
handleNavigation(selectedMedia, false);

这就是你需要的一切。这样,您将获取必须存储在某个服务器上的视频的URL。 link_to_some_image是可选的,您可以提供任何图像,例如chromecast徽标。 处理导航将启动LocalPlayerActivity,就是这样。 这对我有用。