2017-01-13 2 views
0

stoppen Ich versuche in Ionic1 zu arbeiten und hier ein confussing Problem hat:Ionic spielen Medien nach

Ich mag ein Medium (mp3 z) direkt nach einem einer anderen gestoppt spielen. Sprechen: Liste der Lieder haben. Wenn man läuft - klicken Sie auf einen anderen ein - dann den Strom stoppen und die neuen starten ...

Aber ich etwas verpaßt ... Hier ist der Code:

Vielen Dank im Voraus für alle Hinweise.

! Sound ist nur ein Objekt mit Titel, URL und Status für Status. !

var currentSound, currentMedia; 
    $scope.play = function(sound) { 

    if(currentMedia && currentSound && currentSound.sta == 1){ 
     currentMedia.stop(); 
     currentSound.sta = 0; 

     if(sound.title === currentSound.title) return; 
    } 

    var mediaUrl = sound.url; 
    if(device.platform.indexOf("iOS") >= 0) { 
     mediaUrl = "../Library/NoCloud/" + mediaUrl.split("/").pop(); 
    } 

    currentSound = sound; 
    currentMedia = new Media(mediaUrl, 
     function() { 
      currentMedia.release(); 
      currentSound.sta = 0; 
     }, function(err) { 
      console.log("media err", err); 
     }, function (sta) { 
      if(sta == Media.MEDIA_RUNNING) 
      { 
      currentSound.sta = 1; 
      } 
      else 
      { 
      currentSound.sta = 0; 
      } 
     }); 

    currentMedia.play(); 
    currentSound.sta = 1; 

    } 

Antwort

0

OK - Ich habe eine Lösung gefunden ... auch wenn ich es nicht verstehe. (Ich bin offen für Ihre Weisheit)

Lösung: rufen Sie einfach die Funktion rekursiv im Falle des Stopps & starten Sie ein Medium.

var currentSound, currentMedia; $ scope.play = function (Ton) {

if(currentMedia && currentSound && currentSound.sta == 1){ 
    currentMedia.stop(); 
    currentSound.sta = 0; 

    if(sound.title === currentSound.title) 
    { 
    return; 
    } 
    else 
    { 
    $scope.play(sound); 
    } 
} 

var mediaUrl = sound.url; 
if(device.platform.indexOf("iOS") >= 0) { 
    mediaUrl = "../Library/NoCloud/" + mediaUrl.split("/").pop(); 
} 

currentSound = sound; 
currentMedia = new Media(mediaUrl, 
    function() { 
     currentMedia.release(); 
     currentSound.sta = 0; 

    }, function(err) { 
     console.log("media err", err); 

    }, function (sta) { 

     if(sta == Media.MEDIA_RUNNING) 
     { 
     currentSound.sta = 1; 
     } 
     else 
     { 
     currentSound.sta = 0; 
     } 
    }); 

currentMedia.play(); 
currentSound.sta = 1; 

}

Verwandte Themen