我正在修改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。
我没有在整个应用程序中更改任何内容。所以有人告诉我哪里出错了?
答案 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,就是这样。 这对我有用。