Ich arbeite an Video abspielen auf GMSMarker Pin und unten ist mein Code. Die Anzeige und Verstecken / Zeigen Pin-Ansicht, alles funktioniert gut. Außer Video nicht abspielen. Ich benutze Storyboard mit Pinview.
%Vor%Bitte helfen Sie mir, das Problem zu beheben. Warum das Video nicht abgespielt wird.
Vielen Dank im Voraus.
Normalerweise wird das Info-Fenster nach dem Anzeigen nicht neu generiert (das Hinzufügen als Bild). Um Video-Frames anzuzeigen, muss sie beim Abspielen des Videos neu generiert werden. Das bedeutet, dass das Fenster automatisch aktualisiert werden muss. Um dies zu tun, müssen Sie eine Eigenschaft für Ihren GMSMarker festlegen. Linie wie folgt,
%Vor%Ihr vollständiger Code ist also
%Vor%Die Google-Dokumentation ist Ссылка
Ich glaube, dass der Grund, warum Ihr Code nicht funktioniert, darin besteht, dass Google Maps für iOS benutzerdefinierte Info-Ansichten als Bilder darstellt. Ich bin mir nicht sicher, aber ich glaube, da ich es auch mit Animationen versucht habe und es auch nicht funktioniert. Wenn ich Animation verwende, sehe ich zuerst den Anfangszustand der Animation und wenn ich das Marker-Info-Fenster wieder öffne, sehe ich den Endzustand, ohne Animation. Wenn ich ein Textfeld in der benutzerdefinierten Infofensteransicht hinzufüge, kann ich auch nicht auf dieses Textfeld klicken. Wenn ich mit dem Video wie Sie versuche, sehe ich ein leeres Fenster wie der Player startet und den Sound hört, aber das Video startet nie.
Ich habe diese Notiz in vielen Fragen zu Stackoverflow gefunden (sie sagen, dass es aus Google Docs stammt), aber ich sehe es nicht in Google Docs:
Hinweis: Das Infofenster wird jedes Mal als Bild gerendert, wenn es auf der Karte angezeigt wird. Dies bedeutet, dass Änderungen an seinen Eigenschaften, während sie aktiv sind, nicht sofort sichtbar sind. Der Inhalt des Infofensters wird bei der nächsten Anzeige aktualisiert.
Quelle: Google Maps Anzeigen der Sprechblase im Marker-Info-Fenster iOS
Vielleicht können Sie es mit tracksInfoWindowChanges = YES versuchen:
%Vor%Quelle: Erzwingen des Inhalts von markerInfoWindow im Google Maps iOS SDK aktualisieren
Ich weiß, dass Sie es in der viewDidLoad
-Methode festgelegt haben, aber vielleicht setzen Sie es in einem
- (UIView *)mapView:(GMSMapView *)mapView markerInfoWindow:(GMSMarker *)marker
Methode wird vielleicht funktionieren, aber ich glaube nicht. Viele Leute sagen, dass das Einstellen von markerInfoWindow
auf YES funktioniert, aber ich habe es versucht, und es funktioniert nicht.
Ich habe versucht, iOS Maps und Videospiele ohne Probleme zu verwenden. Ich hatte nie ein Problem mit Apple Maps. Also, ich bin sicher, dass Google Maps keine gute Lösung für dieses Problem ist. Vielleicht könntest du es durch einen Hack beheben, aber ich habe mehrere Stunden verloren, um eine Lösung ohne Ergebnisse zu finden. Vielleicht kann es zum Beispiel gemacht werden, um einen UIView über die Karte zu bewegen, wenn der Benutzer seinen Finger auf der Karte bewegt oder hinein- oder herauszieht, oder eine andere Lösung, aber ich bevorzuge Systemlösungen über Hacks. In diesem Fall sehe ich keine Systemlösung, vielleicht würde ich es finden, wenn ich mehr Zeit für die Recherche hätte. Wenn ich Sie wäre, würde ich Google Maps dafür nicht verwenden.
Bearbeiten : Ich habe gerade gesehen, dass meine Lösung am Simulator funktioniert. Auf einem echten Gerät (iPhone 7+) funktioniert es nicht, d. H. Ich sehe Player-Steuerelemente animieren, ich sehe Ton, aber ich sehe das Video nicht. Aber selbst wenn es auf einem echten Gerät funktioniert, wie es im Simulator funktioniert, kann der Benutzer kein Video abspielen oder pausieren, da er nur Bilder sieht, die regelmäßig aktualisiert werden.
Tags und Links objective-c google-maps ios video gmsmapview