Wie kann ich kontrollieren, eine HTML5-audio-player mit AngularJS?
Habe ich eine einfache Implementierung in JavaScript, spielt songs aus einer Wiedergabeliste kontinuierlich, bis es endet.
Ich habe nicht in der Lage gewesen, um herauszufinden, welche ist die richtige Art und Weise zu implementieren, die es in AngularJS. Diese übung sollte die Adresse der gewünschten features:
- Kapseln Spieler als service
- Brauche ich Richtlinien für die Zugriffssteuerung?
- Fangen die "end" - Veranstaltung zu Beginn des neuen song
Hier ist ein Auszug der HTML-Datei.
...
<div class="span4">
<button class="btn btn-large btn-primary" type="button" ng-click="startPlaying();">Start Playing</button>
</div>
...
<div class="span6">
<h4 id="NowPlayingID">Now Playing: </h4>
<audio id="AudioPlayerID" controls="controls">
</audio>
</div>
...
<!-- OLD JavaScript code -->
<script type="text/javascript">
function playNextSong(player) {
if (playlist.currentSongIX >= playlist.songs.length)
return;
$('#NowPlayingID').text('Now Playing: ' + playlist.songs[playlist.currentSongIX].name);
player.src = playlist.songs[playlist.currentSongIX].path;
player.play();
playlist.currentSongIX++;
}
function startPlaying() {
var player = document.getElementById("AudioPlayerID");
player.addEventListener('ended', function() {
playNextSong(player);
}, false);
playNextSong(player);
};
</script>
Folgende code ist work in progress und unvollständig:
app.controller('PlayCtrl', function($scope, $routeParams, Playlist, $log, $document) {
$scope.playlist = Playlist.get({playlistID:$routeParams.playlistID});
var player = ????? ("AudioPlayerID");
$scope.startPlaying = function () {
angular.forEach($scope.playlist.songs, function(song) {
$log.log("Playing: " + song.name);
player.src = song.path;
player.play();
});
};
});
...
Meine Fragen sind:
- Das ist der richtige Weg, um Zugriff auf die audio-player?
- Brauche ich Direktiven?
- Wie fange ich das 'Ende' Ereignis?
Dank
Haben Sie etwas nützliches @Julio?
InformationsquelleAutor Julio | 2013-07-18
Du musst angemeldet sein, um einen Kommentar abzugeben.
Habe ich bauen einen html-player backended von flash zum Abspielen der Musik, so erstelle ich mein eigenes event-flow zu den Vorgängen, aber ich denke, dass die beste Möglichkeit ist das erstellen einer Richtlinie zu tun. In diesem Fall können Sie re-verwenden Sie die Richtlinie, wenn Sie brauchen, und es funktioniert sehr gut.
Wenn Sie den player-Objekt in Ihre Richtlinie, die Sie fangen können alle Ereignisse, die in der Regel.
Werfen Sie einen Blick auf diese website: Winkel-Tunes und überprüfen Sie die Quellen, um zu sehen, was er tut. Es ist das gleiche wie Sie zu tun versuchen.
Ich hoffe, es hilft.
Wenn Sie etwas Hilfe benötigen, senden Sie mir einfach eine plunker oder jsfiddle =)
Dies beantwortet die Frage nicht
InformationsquelleAutor Deividi Cavarzan