0

ギャラリーからビデオを再生しようとしています。ボタンをクリックすると、videoView でビデオの再生が開始されます。しかし、指定された子にはすでに親がいるという例外が発生します。以下は私のコードです:

public class MainActivity extends Activity {

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    Button bt= (Button) findViewById(R.id.button1);
    final String filename = "/sdcard/myvideo.mp4";  
    Log.e("Video Error", "Problem Below");
     final VideoView videoView1 = (VideoView)findViewById(R.id.videoview);
        Log.e("Video Error", "Problem Above");
     setContentView(videoView1);
     videoView1.setVideoPath(filename);
    // videoView1.setMediaController(MainActivity.this);
     videoView1.requestFocus();
     bt.setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View v) {
              //String fileName = "android.resource://" + getPackageName() + "/" + R.raw.sample;

                Toast.makeText(getApplicationContext(), "Hey Baby", 5000);
              //videoView1.start();
              //Exit after saved
             // finish();

        }
    });

}

@Override
public boolean onCreateOptionsMenu(Menu menu) {
    // Inflate the menu; this adds items to the action bar if it is present.
    getMenuInflater().inflate(R.menu.main, menu);
    return true;
}
}

VideoView を初期化しようとすると、次の例外が発生します。

:12:11.838: E/AndroidRuntime(1124): FATAL EXCEPTION: main
03-12 19:12:11.838: E/AndroidRuntime(1124): java.lang.RuntimeException: Unable to start      activity ComponentInfo{com.et.getimages/com.et.getimages.MainActivity}: java.lang.IllegalStateException: The specified child already has a parent. You must call removeView() on the child's parent first.

助けてください。

4

2 に答える 2

0

setContentView()二度電話しているからだと思います。初めてVideoViewを作成し、次にsetContentView(videoView1);

ただし、完全なスタックトレースがないと、わかりません。

show()トーストに追加して表示させるps

于 2013-03-12T14:26:13.567 に答える
0

次のステートメントでコンテンツ ビューを設定します。

setContentView(R.layout.activity_main);

layout/activity_main.xml次に、別のビューで定義されたビューから取得します。

(VideoView)findViewById(R.id.videoview);

実際にはの子ですlayout/activity_main.xml

そして、もう一度コンテンツビューを設定しようとします:

setContentView(videoView1);

しかしvideoView1、それは一部であるため、すでに親を持っているため、このメソッドはパラメーターで指定されたビューのルートを設定しているため、layout/activity_main.xmlこのビューを使用できません。setContentView()

于 2013-03-12T14:30:35.380 に答える