0

4 つのタブを持つアプリケーションを作成しました。

  1. vedio タブ、このタブで、リモート URL を取得してビデオを再生したい
  2. バーチャルラボ
  3. ビデオを編集する
  4. ヘルプ

表示タブに FragmentTabHost クラス ID を使用する MainActivity クラスを作成しました。

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); 
        }
    }

私はvedioタブをクリックしてvedioを再生することに固執しています。3日間検索しましたが、解決策が見つかりませんでした。vedio サウンドは来ていますが、vedio は再生されていません。

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 に答える