android中如何通过FragmentTabHost播放视频

问题描述 投票:0回答:2

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

  1. 视频选项卡,在此选项卡中我想播放视频,获取远程网址
  2. 虚拟实验室
  3. 编辑视频
  4. 帮助

我制作了 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天,但没有找到解决方案。视频有声音,但视频未播放。

android-fragments fragment-tab-host
2个回答
0
投票

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

我遇到了同样的问题:我使用 mp4 格式和 1280x720 的分辨率。并非所有设备(例如 HTC Wildfire S)都支持此视频格式。将分辨率更改为 480x360 后,所有设备都可以播放视频。

此链接应该可以帮助您: http://developer.android.com/guide/appendix/media-formats.html


0
投票

您的

MainActivity
类实现利用
FragmentTabHost
进行选项卡显示似乎结构良好。它有效地设置了选项卡功能,指示“视频”、“虚拟实验室”和“编辑视频”等各个部分。您在“徽标”和“视频网址”等其他选项卡中添加
mTabHostabove
可以增强应用程序的导航功能。总体而言,它似乎是一个强大的实现。如需进一步改进或故障排除,请考虑检查布局 XML (
activity_main.xml
) 并确保正确的片段处理。此外,探索在线资源或寻求开发社区的帮助可以提供有价值的见解。您也可以访问Alight Motion APK进行相关讨论和支持。

© www.soinside.com 2019 - 2024. All rights reserved.