VideoView wird nicht angezeigt, auf einem Fragment

Ich habe ein problem bei der Ausführung einer video-Samsung S3(Android 4.1.1), das Problem scheint zu sein, weil die videoview ist auf ein fragment, weil wenn ich es auf-und Aktivität, es funktioniert.
Auch fand ich heraus, dass, wenn ich schalten Sie die GPU-hardware-Beschleunigung auf, die video-arbeiten.
Ich habe auch ein Spiel gemacht, indem auf einer SurfaceView und diese Ansicht funktioniert nicht so gut(nur mit der GPU auf)... der rest Der app-Inhalt wird angezeigt wie es soll (Tasten-und andere layouts).

Getestet habe ich die app auf dem Nexus S und dem emulator und es funktioniert einwandfrei, auch auf anderen Geräten..

Weiß jemand was das problem sein könnte?
Danke!

Und hier ist der code:

public class VideoFragment extends Fragment implements MediaPlayer.OnCompletionListener,
        MediaPlayer.OnPreparedListener, MediaPlayer.OnErrorListener {

    private Video mVideo;
    private VideoView mVideoView;
    //The video position
    private int mPosition;

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {

        View fragmentView = inflater.inflate(R.layout.screen_video, container, false);

        mVideoView = (VideoView) fragmentView.findViewById(R.id.VideoView);

        return fragmentView;
    }


    @Override
    public void onPause() {
        super.onPause();

        //Pause the video if it is playing
        if (mVideoView.isPlaying()) {
            mVideoView.pause();
        }

        //Save the current video position
        mPosition = mVideoView.getCurrentPosition();
    }

    @Override
    public void onResume() {
        super.onResume();

        mVideoView.setOnCompletionListener(this);
        mVideoView.setOnPreparedListener(this);
        mVideoView.setOnErrorListener(this);
        mVideoView.setKeepScreenOn(true);

        //Initialize the media controller
        MediaController mediaController = new MediaController(getActivity());
        mediaController.setMediaPlayer(mVideoView);
        //Set-up the video view
        mVideoView.setMediaController(mediaController);
        mVideoView.requestFocus();
        mVideoView.setVideoPath(mVideo.getUrl());

        if (mVideoView != null) {
            //Restore the video position
            mVideoView.seekTo(mPosition);
            mVideoView.requestFocus();
        }
    }

    @Override
    public void onDestroy() {
        super.onDestroy();

        //Clean-up
        if (mVideoView != null) {
            mVideoView.stopPlayback();
            mVideoView = null;
        }
    }

    @Override
    public void onCompletion(MediaPlayer mediaPlayer) {
        Log.e("VIDEO PLAY", "end video play");
    }

    @Override
    public void onPrepared(MediaPlayer mediaPlayer) {
        //Start the video view
        mediaPlayer.start();
        Log.e("VIDEO PLAY", "video ready for playback");
    }

    @Override
    public boolean onError(MediaPlayer mediaPlayer, int i, int i1) {
        Log.e("VIDEO PLAY", "error: " + i);
        return true;
    }

}

Ich glaube nicht, dass es etwas im Zusammenhang mit Kontext(Anwendung oder Aktivität).. weil auf allen anderen Geräten, die Video-und die Spiele angezeigt werden..
Vielen Dank für die Hilfe!

  • Poste bitte die Fragment-und layout-code, bezieht sich auf die VideoView. Ohne diese, schwer zu sagen, was falsch läuft.
  • Den code Hinzugefügt auch, sorry.. das Ding ist, dass ich dieses Video Fragment-Klasse und ein Spiel, das ist wirklich eine SurfaceView, und ich zeichne auf, dass die Oberfläche, so dass ich nicht denke, das hängt mit meinem code.. wenn die Bildschirme laufen auf eine Tätigkeit dann funktionieren beide gut.. Danke für die Hilfe
InformationsquelleAutor Cata | 2012-11-21
Schreibe einen Kommentar