Android fragments 如何在android中通过FragmentTabHost播放视频

Android fragments 如何在android中通过FragmentTabHost播放视频,android-fragments,fragment-tab-host,Android Fragments,Fragment Tab Host,我制作了一个有4个选项卡的应用程序: 视频选项卡,在这个选项卡中,我想播放视频,获取远程url 虚拟实验室 编辑视频 帮助 我制作了MainActivity类,其中使用FragmentTabHost类id作为显示选项卡 public class MainActivity extends FragmentActivity{ private FragmentTabHost mTabHost; private FragmentTabHost mTabHostabove; @O

我制作了一个有4个选项卡的应用程序:

  • 视频选项卡,在这个选项卡中,我想播放视频,获取远程url
  • 虚拟实验室
  • 编辑视频
  • 帮助
  • 我制作了MainActivity类,其中使用FragmentTabHost类id作为显示选项卡

    public class MainActivity extends FragmentActivity{
        private FragmentTabHost mTabHost;
        private FragmentTabHost mTabHostabove;
    
        @Override
        protected void onCreate(Bundle arg0) {
            super.onCreate(arg0);
            setContentView(R.layout.activity_main);
    
            mTabHost = (FragmentTabHost)findViewById(R.id.tabhost);
            mTabHost.setup(this, getSupportFragmentManager(), R.id.tabcontent);
    
            mTabHost.addTab(mTabHost.newTabSpec("Vedio").setIndicator("Vedio",getResources().getDrawable(R.drawable.ic_launcher)),FragmentTab.class,null);
            mTabHost.addTab(mTabHost.newTabSpec("Virtual Lab").setIndicator("Virtual Lab"),FragmentTab.class,null);
            mTabHost.addTab(mTabHost.newTabSpec("Edit Vedio").setIndicator("Edit Vedio"),FragmentTab.class,null);
    
            mTabHost.addTab(mTabHost.newTabSpec("Help").setIndicator("Help1"),FragmentTab.class,null);
            mTabHostabove = (FragmentTabHost)findViewById(R.id.tabhostabove);
            mTabHostabove.setup(this, getSupportFragmentManager(), R.id.tabcontent);
    
            mTabHostabove.addTab(mTabHostabove.newTabSpec("Logo").setIndicator("Logo"),FragmentTab.class,null);
            mTabHostabove.addTab(mTabHostabove.newTabSpec("Vedio Url ").setIndicator("Vedio Url",getResources().getDrawable(R.drawable.ic_launcher)),FragmentTab.class,null);
        }
    }
    
    我还创建了FragmentTab类,它扩展了Fragment

    以下是代码:

    public class FragmentTab extends Fragment {
        private TextView tv;
        private VideoView mVideoView;
    
        @Override
        public View onCreateView(LayoutInflater inflater, ViewGroup container,
                Bundle savedInstanceState) {
                    View v = inflater.inflate(R.layout.fragment_layout, container, false);
                    tv = (TextView) v.findViewById(R.id.text);
                    mVideoView =  (VideoView)v.findViewById(R.id.vedioview);
                    tv.setOnClickListener(new View.OnClickListener() {
    
                    @Override
                    public void onClick(View v) {
                        try {
                            String path1="http://commonsware.com/misc/test2.3gp";
                            MediaController  mc = new MediaController(getActivity());
                            mc.setAnchorView(mVideoView);
                            mc.setMediaPlayer(mVideoView);
                            mVideoView.setMediaController(mc);
                            mVideoView.requestFocus();
                            // mVideoView.setVideoURI(Uri.parse("android.resource://" +getActivity().getApplicationContext().getPackageName() +"/"+R.raw.song));
                            mVideoView.setVideoURI(Uri.parse(path1));
                            mc.show();
                            mVideoView.start();
                        } catch (Exception e) {
                        }  
                    }
                });
                String tag = this.getTag();
    
                if (tag == "Vedio") {
                    tv.setText("play vedio");
                }
                if (tag == "Edit Vedio") {
                    tv.setText("want to Edit Vedio !!!!!!!");
                }
                if (tag == "Help") {
                    tv.setText("do u want help !!!!!!!");
                }
    
                if (tag == "Virtual Lab") {
                    tv.setText("Enter Virtual lab !!!!!!!");
                }
    
                return v;
            }
    
            @Override
            public void onActivityCreated(Bundle savedInstanceState) {
                super.onActivityCreated(savedInstanceState); 
            }
        }
    
    我被困在点击视频标签播放视频
    如果你能,任何人都能解决它。我已经搜索了3天,但没有找到解决方案。视频声音即将到来,但视频无法播放。

    并非所有设备都支持所有视频编解码器

    我也有同样的问题:我使用mp4格式,分辨率为1280x720。并非所有设备(如HTC Wildfire S)都支持此视频格式。将分辨率更改为480x360后,所有设备都会显示视频

    此链接将帮助您: