0

私は 1 つの画面に 4 つの videoviewa の要件がある 1 つのアプリケーションに取り組んでいます。ビューは 1 つの画面に 4 つの正方形のボックスのようなものです。1 つのアクティビティで 4 つの videoview を取得しました。ここにコードがあります。

vid1 = (VideoView) mView.findViewById(R.id.vid1);
        vid2 = (VideoView) mView.findViewById(R.id.vid2);
        vid3 = (VideoView) mView.findViewById(R.id.vid3);
        vid4 = (VideoView) mView.findViewById(R.id.vid4);

private void PlayVideo() {
        lnrVideoPlayback.setVisibility(View.VISIBLE);
        Thread t1 = null, t2 = null, t3 = null, t4 = null;
        if (prefsVideo.getString("v1URI", null) != null) {

            vid1.setVideoURI(Uri.parse(prefsVideo.getString("v1URI", null)));
//          vid1.setLayoutParams(new LinearLayout.LayoutParams(getResources()
//                  .getDimensionPixelSize(R.dimen.boxviewheight),
//                  getResources().getDimensionPixelSize(R.dimen.boxviewheight)));

            vid1.setVisibility(View.VISIBLE);
            t1 = new Thread(new Runnable() {

                @Override
                public void run() {
                    android.os.Process
                            .setThreadPriority(android.os.Process.THREAD_PRIORITY_URGENT_DISPLAY);

                    vid1.start();

                }
            });
        }
        if (prefsVideo.getString("v2URI", null) != null) {
            vid2.setVideoURI(Uri.parse(prefsVideo.getString("v2URI", null)));
            vid2.setMediaController(new MediaController(getActivity()));
            vid2.setVisibility(View.VISIBLE);
            t2 = new Thread(new Runnable() {

                @Override
                public void run() {
                    android.os.Process
                            .setThreadPriority(android.os.Process.THREAD_PRIORITY_URGENT_DISPLAY);
                    vid2.start();
                }
            });
        }
        if (prefsVideo.getString("v3URI", null) != null) {
            vid3.setVideoURI(Uri.parse(prefsVideo.getString("v3URI", null)));
            vid3.setMediaController(new MediaController(getActivity()));
            vid3.setVisibility(View.VISIBLE);
            t3 = new Thread(new Runnable() {

                @Override
                public void run() {
                    android.os.Process
                            .setThreadPriority(android.os.Process.THREAD_PRIORITY_URGENT_DISPLAY);
                    vid3.start();
                }
            });
        }
        if (prefsVideo.getString("v4URI", null) != null) {
            vid4.setVideoURI(Uri.parse(prefsVideo.getString("v4URI", null)));
            vid4.setMediaController(new MediaController(getActivity()));
            vid4.setVisibility(View.VISIBLE);
            t4 = new Thread(new Runnable() {

                @Override
                public void run() {
                    android.os.Process
                            .setThreadPriority(android.os.Process.THREAD_PRIORITY_URGENT_DISPLAY);

                    vid4.start();
                }
            });
        }

        t1.start();
        t2.start();
        t3.start();
        t4.start();

    }

正しく再生されたビデオよりも 1 つのビデオを再生しているときに、4 つのビデオを一緒に再生すると、4 つのビデオすべてに「ビデオを再生できません」というメッセージが表示されます。

4

1 に答える 1

1

デバイスのシステム/フレームワークの実装によって異なります。

  1. 同時に使用できるメディア プレーヤーのインスタンスの最大数
  2. 同時に使用できるビデオ サーフェスの最大数

通常、数は 2 です。

于 2013-11-08T15:48:29.403 に答える