Englisch version   English version


Version Anpassungen
1.0 (2024-10-12) Initiale Version
1.1 (2025-03-19) Die Verfügbarkeit der internen Felder der Player-Komponente hängt von der Reihenfolge der Initialisierung der Komponenten durch App Inventor ab.
Die Eigenschaft PlayerToUse steht deshalb nicht mehr als Designer-Eigenschaft zur Verfügung. Sie muss zur Laufzeit angesteuert werden, z.B. im Ereignis Screen.Initialize.

Motivation

Für mein Audio-Projekte habe ich bisher immer den Taifun-Player benutzt, weil er mehr Funktionen besitzt als die Player-Komponente im App Inventor. Bei meinem aktuellen Smartphone bleibt der Taifun-Player nach etwa 20 Minuten stehen. Die AI2-Player-Komponente läuft jedoch durchgängig weiter. Diese Extension ergänzt die AI2-Player-Komponente um zusätzliche Funktionen.


Download

Das ZIP-Archiv UrsAI2PlayerAddon zum Download. Das Archiv enthält den Quellcode, das kompilierte Binary zum Upload in den App Inventor und ein Beispielprojekt.

Verwendung

Der Extension muss zur Laufzeit eine Player-Komponente zugewiesen werden, z.B. im Ereignis Screen.Initialize.

Dann stehen die in der Referenz genannten Zusatzfunktionen zur Verfügung.

Referenz

Eigenschaften

CurrentPosition
Gibt die aktuelle Position der augenblicklich abgespielten Audiodatei zurück.
Duration
Gibt die Dauer der aktuell abgespielten Audiodatei zurück.
IsRunningInCompanion
Gibt zurück, ob die App im Companion ausgeführt wird.
PlayerToUse
Player-Komponente die erweitert werden soll.
Version
Gibt den Versionsnamen der Extension zurück.
VersionSDK
Gibt die laufende Android SDK-Version zurück.

Funktionen

SeekTo (MilliSeconds)
Sucht die angegebene Zeitposition auf.
StartAt (MilliSeconds)
Start an einer bestimmten Position.

Ereignisse

Fehlerbehandlung

 Fehler werden über das Ereignisse Screen.ErrorOccurred  gemeldet.

Code Text Bedeutung Anmerkung
18040 Component not of type 'Player'. Die übergebene Komponente ist nicht vom Typ Player. Betroffene Eigenschaft ist PlayerToUse.
18041 Cannot access internal field 'player'. Die Extension kann nicht auf das interne Feld player der Player-Komponente zugreifen. Versionskonflikt? Betroffene Eigenschaft ist PlayerToUse.
18042 'Player' component not initialzed yet. Die Player-Komponente ist noch nicht vollständig initialisiert. Versionskonflikt? Betroffene Eigenschaft ist PlayerToUse.

Beispiel

Test-App

Launcher Icon

Eine kleine Beispiel-App zeigt die Verwendung der Extension (s. Download).

In dem Beispiel wird die AI2-Player-Komponente dazu benutzt, einen Song abzuspielen. Die Extension UrsAI2PlayerAddon wird dazu benutzt, schnellen Vor- und Rücklauf zu realisieren.

Screenshot Screenshot der App.

Werkzeuge

Für die Erstellung eigener Extensions habe ich einige Tipps zusammengestellt: AI2 FAQ: Extensions entwickeln.