bekomme "[SurfaceView] connect: schon verbunden" -Fehler, wenn ich eine Bitmap als Hintergrund von SurfaceView zeichne und dann Video abspiele

8

Was ich machen möchte ist   Zeigen Sie ein Hintergrundbild auf der SurfaceView an, bevor Sie mit der Wiedergabe von Videos beginnen.

  1. Ich habe versucht, einfach ein JPEG-Bild als Hintergrund von SurfaceView zu zeichnen. Es funktionierte.
  2. Ich habe auch versucht, ein Video auf dem SurfaceView zu spielen. Es hat auch funktioniert.

Aber, als ich versuchte, das JPEG-Bild als Hintergrund der Surface in SurfaceCreated-Funktion zu zeichnen und dann ein Video abzuspielen. Ich habe den Fehler "[SurfaceView] verbinden: bereits verbunden".

Irgendwelche Ideen? Danke.

Hier ist der Teilcode

%Vor%     
hamer 19.06.2012, 09:58
quelle

2 Antworten

0

Ich denke, Problem ist, dass Sie Seite SurfaceHolder verwenden können, ändern Sie einfach mHolder-Objekt mit lokalen Halter Objekt wird es Arbeit sein. Ich kann es nicht auf meiner Seite versuchen.

    
Jayesh Khasatiya 30.12.2013 10:01
quelle
0

Hier sind einige Dinge, die ich aufgrund meiner Erfahrung mit dem MediaPlayer falsch sehe.

  • Verwenden Sie zuerst prepareAysnc () anstelle von prepare ().
  • Zweitens: Setzen Sie die Listener zuerst, bevor Sie prepare () aufrufen. In Ihrem Fall, mMediaPlayer.setOnPreparedListener (this)

wird gefolgt von prepare (). Stellen Sie sich ein Szenario vor, bei dem prepare () nach der Fertigstellung nach OnPreparedListener sucht und es nicht findet, weil Sie es noch nicht festgelegt haben. Und das Einstellen danach wird nicht weiterhelfen, da der Media Player bereits im Zustand PREPARED ist und Sie somit nie auf den Prepare () Callback zugreifen würden.

In diesem Fall wird mMediaPlayer.start () möglicherweise nie ausgeführt.

Setzen Sie im Allgemeinen alle erforderlichen Listener zuerst, bevor Sie ihre Trigger aufrufen.

    
Varun Anand 03.08.2015 19:14
quelle

Tags und Links