Ich habe den folgenden Code, um ein Video als Rohressource zu nehmen, das Video zu starten und es zu schleifen, aber ich brauche das Video, um ab sofort nahtlos zu schleifen, wenn es zu einem Ende des Clips kommt und den Clip erneut startet. Der Übergang zwischen den Ursachen a flackere für den Bruchteil einer Sekunde, was ich für meine App wirklich nicht haben kann.
public class Example extends Activity {
VideoView vv;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
vv = (VideoView)findViewById(R.id.VideoView01);
//Video Loop
vv.setOnCompletionListener(new MediaPlayer.OnCompletionListener() {
public void onCompletion(MediaPlayer mp) {
vv.start(); //need to make transition seamless.
}
});
Uri uri = Uri.parse("android.resource://com.example/"
+ R.raw.video);
vv.setVideoURI(uri);
vv.requestFocus();
vv.start();
}
}
Der Clip ist nur 22 Sekunden lang, wurde jedoch nahtlos erstellt, sodass Sie ohne Verzögerung arbeiten können.
android
android-videoview
SamRowley
quelle
quelle
Ich bin mir nicht sicher, ob das Jahre später hilft, aber ich habe es benutzt
und es hat eine nahtlose Schleife
quelle
In der Pause
MediaPlayer
aktualisiert der Basiswert seine Puffer. Wie lange dies dauern wird, hängt von einer Reihe von Faktoren ab, von denen viele außerhalb Ihrer Kontrolle liegen (z. B. Geschwindigkeit der CPU, Geschwindigkeit des integrierten Flash-Speichers).Eine Möglichkeit, die Sie steuern können, besteht darin, Ihr Video aus der Ressource in das Dateisystem zu übertragen. Ressourcen werden in der APK gespeichert, bei der es sich um eine ZIP-Datei handelt. Das Extrahieren des Videos auf diese Weise dauert wahrscheinlich länger.
Möglicherweise müssen Sie von zwei abwechseln
VideoView
und eineSurfaceView
mit zweiMediaPlayers
abwechseln - eine spielt, während sich die nächste vorbereitet. Wenn die nächste endet, können Sie zum neuen Spieler wechseln. Ich habe dies nicht versucht und weiß daher nicht, welche Auswirkungen dies haben könnte. Ich weiß jedoch, dass diese Technik häufig für die Audiowiedergabe verwendet wird, um von einem Clip zu einem anderen zu wechseln.quelle
Etwas spät, aber aus irgendeinem Grund können Sie Folgendes nicht verwenden?
quelle
Wenn Sie Kotlin verwenden
Verwenden der Kurzform "Pfeilausdruck"
quelle
Die Antwort darauf besteht darin, das Audio aus dem Video zu entfernen und es in eine
.ogg
Datei zu konvertieren, die nahtlos geloopt werden kann. Anschließend wird das Video ohne Audio zum Schleifen verwendet. Dies funktioniert.quelle
Hier ist Antwort Freunde, die Sie
vv.resume
imsetOnCompletionListener
Unterricht verwenden müssen[ https://stackoverflow.com/a/27606389/3414469 weibl. [1 ]
quelle
In Kotlin einfach benutzen
quelle