0

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

  1. 视频选项卡,在此选项卡中我想播放视频,获取远程 URL
  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);
    }
}

我还制作了扩展 Fragment 的 FragmentTab 类。

这是代码:

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

4

1 回答 1

0

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

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

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

于 2013-07-08T06:45:25.830 回答