Android 4.2 mit 4 Mediaplayers muss = "Kann nicht spielen dieses video"
Immer wenn ich versuche zu laden, auf mindestens 4 Mediaplayers muss, wird einer von Ihnen korrupt video es versucht zu laden und auslösen eines Android-OS-Meldung "Kann nicht spielen dieses video"
Weitere Informationen:
3 Mediaplayers muss alles einwandfrei funktioniert.
Auf anderen Android-Versionen, unterscheiden sich von den 4.2, den gleichen code mit dem gleichen 4-video-arbeiten.
Den 4 video gespielt werden können, unabhängig auf dem Gerät. Es gibt keine format-problem.
Nach dem Start des Programms und bekommen die "Kann nicht spielen dieses video" Meldung, das video kann nicht mehr abgespielt werden, in jedem anderen Programm, sofern ich das Gerät zurücksetzen.
Habe ich versucht, dieses sowohl mit VideoViews oder unabhängige Mediaplayers muss angezeigt surfaceViews.
Ich repliziert den Fehler auf mehr Geräte mit Android 4.2.
Auf android 4.1.2 und andere android-4-Versionen, ich kann mich nicht erinnern, der code war in Ordnung.
InformationsquelleAutor Stefan Alexandru | 2013-04-05
Du musst angemeldet sein, um einen Kommentar abzugeben.
Auf Android, die Idee ist, dass alles im Zusammenhang mit media-codecs wird vor dem Entwickler verborgen, die einen einheitlichen und eindeutigen API :
MediaPlayer
.Beim wiedergeben von Medien, wäre es ein stream oder so etwas befindet sich auf dem externen Gerät, das low-level-codecs/Parser sind instanziert jedes mal, wenn Sie eine Anwendung benötigen werden Ihre Hilfe.
Jedoch kommt es vor, dass aus bestimmten Gründen im Zusammenhang mit der hardware-Dekodierung, einige codecs, die nicht instanziiert werden kann, mehr als einmal. Als eine Angelegenheit von der Tat, jeder Anwendung muss werden, die Freigabe von Ressourcen (codecs Instanzen zum Beispiel), wenn Sie nicht mehr benötigt werden, durch aufrufen von
MediaPlayer.release()
in einem gültigen Zustand befindet.In der Tat, was ich sage ist dargestellt in der Dokumentation von
Version
auf der Android-Entwickler-website :So, entweder sind Sie nicht aufrufen
release
wenn Sie fertig sind der Wiedergabe, oder einer anderen app hält eine Referenz auf diese Art von Ressourcen.EDIT :
Wenn Sie brauchen, um das Rendern mehrere videos auf der gleichen
Activity
haben Sie zwei Möglichkeiten. Als ich sagte in meiner Antwort, was Sie ursprünglich wollten, ist nicht möglich, da der low-level-Probleme, weder ist es auf iOS durch die Art und Weise.Was Sie können versuchen zu tun, obwohl :
Wenn die Medien, die Sie spielen sind nicht real-time-Streaming-Inhalten, könnten Sie wickeln den 4 videos in einem einzigen, mit einer der die weit verbreiteten kostenlosen video-Editoren. Dann Rendern Sie das video im Vollbildmodus in Ihrer Aktivität, wird es so Aussehen, wie Sie 4
Views
.Wenn Sie Echtzeit-/nicht-aufgezeichneter Inhalt, halten die ersten video, wie Sie ist. Ich nehme an, jedes video ist kodiert, mit dem gleichen codec/container. Was Sie versuchen könnten ist die Transkodierung von den 3 anderen videos, so dass Sie einen anderen codec und eine andere format. Stellen Sie sicher, dass Sie Umcodieren um eine codec/container,unterstützt durch Android. Diese könnte potenziell zwingen Android verwenden verschiedene Decoder in der gleichen Zeit. Ich denke, das ist übertrieben im Vergleich zu dem Ergebnis, das Sie erwarten sind.
Schließlich, Sie könnte verwenden Sie ein anderes backend für die Dekodierung wie
MediaPlayer
+FFMPEG
oder nurFFMPEG
. Aber wieder, auch wenn es funktioniert, wird dies, denke ich, ein riesiger overkill.Summe, die Sie haben, Kompromisse zu machen, um für diese zu arbeiten.
Wenn Sie sagen, dass andere Android-Versionen, ich nehme an, Sie testen diese auf anderen Handys als gut. Ich sehe nicht ein, warum würden Sie haben zu halten, ein Verweis auf
4
Mediaplayers muss bei der gleichen Zeit. Auch wenn Sie völlig unterschiedliche Tätigkeiten, Dienstleistungen oder Anwendungen, sollten Sie instanciating der MediaPlayeron-demand
, und ihn loslassen, sobald die Wiedergabe beendet ist oder welchen Gründen auch immer können dazu führen, dass die Wiedergabe zu stoppen. Und dann wieder, reinstanciate es bei der Wiedergabe erforderlich ist.Ich muss 4 Perspektiven des gleichen Objekts parallel auf dem gleichen Bildschirm.
Das ist 4-videos auf dem gleichen
Activity
?ja, die 4 videos laufen simultan in der gleichen Aktivität
InformationsquelleAutor Halim Qarroum