0

Eh bien Bonjour, IlAlexa compétences: HSL joue, mais pas de son

Je me sers du "AudioPlayer" du "Kit de compétences Alexa" diffuser une URL de format audio HLS. Je ne reçois aucune erreur d'AWS Lambda, de Silent Echo et du portail de développeur. Je teste en utilisant l'écho silencieux. Alexa est capable de lire correctement les URL au format MP3. Silent Echo jouerait mon URL HLS, mais je ne peux rien entendre. J'ai également testé d'autres URLs HLS, listées ci-dessous, je ne peux rien entendre d'elles. Cependant, ils fonctionnent quand vous jouez avec le logiciel VLC.

Mon URL HLS: https://cpdc101-lh.akamaihd.net/i/[email protected]/master.m3u8

Autres HLS:

ehttps: //c4.prod.playlists.ihrhls.com/3379/playlist.m3u8

ehttp: // radioitaliasmi-lh .akamaihd.net/i/radioitaliasmi_1 @ 329643/master.m3u8

http://radiom2o-lh.akamaihd.net/i/[email protected]/master.m3u8

quelqu'un pourrait-il s'il vous plaît tester mon HLS aussi bien? Je me demande si c'est juste moi ou peut-être que Silent Echo ne le jouera pas.

Lambda Code de fonction:

var lastPlayedByUser = {}; 
 
var streamURL = "https://cpdc101-lh.akamaihd.net/i/[email protected]/master.m3u8"; 
 

 

 
exports.handler = function(event, context) { 
 
    var player = new SidRothPlayer(event, context); 
 
    player.handle(); 
 
}; 
 

 
var SidRothPlayer = function (event, context) { 
 
    this.event = event; 
 
    this.context = context; 
 
}; 
 

 
SidRothPlayer.prototype.handle = function() { 
 
    var requestType = this.event.request.type; 
 
    var userId = this.event.context ? this.event.context.System.user.userId : this.event.session.user.userId; 
 

 
    if (requestType === "LaunchRequest") { 
 
     this.play(streamURL, 0); 
 

 
    } else if (requestType === "IntentRequest") { 
 
     var intent = this.event.request.intent; 
 
     if (intent.name === "Play") { 
 
      this.play(streamURL, 0); 
 

 
     } else if (intent.name === "AMAZON.PauseIntent") { 
 
      this.stop(); 
 

 
     } else if (intent.name === "AMAZON.ResumeIntent") { 
 
      var lastPlayed = this.loadLastPlayed(userId); 
 
      var offsetInMilliseconds = 0; 
 
      if (lastPlayed !== null) { 
 
       offsetInMilliseconds = lastPlayed.request.offsetInMilliseconds; 
 
      } 
 

 
      this.play(streamURL, offsetInMilliseconds); 
 
     } 
 
    } else if (requestType === "AudioPlayer.PlaybackStopped") { 
 
     this.saveLastPlayed(userId, this.event); 
 
     this.context.succeed(true); 
 
    } 
 
}; 
 

 

 
SidRothPlayer.prototype.play = function (audioURL, offsetInMilliseconds) { 
 
    var response = { 
 
     version: "1.0", 
 
     response: { 
 
      shouldEndSession: true, 
 
      directives: [ 
 
       { 
 
        type: "AudioPlayer.Play", 
 
        playBehavior: "REPLACE_ALL", 
 
        audioItem: { 
 
         stream: { 
 
          url: audioURL, 
 
          token: "0", 
 
          expectedPreviousToken: null, 
 
          offsetInMilliseconds: offsetInMilliseconds 
 
         } 
 
        } 
 
       } 
 
      ] 
 
     } 
 
    }; 
 

 
    this.context.succeed(response); 
 
}; 
 

 

 
SidRothPlayer.prototype.stop = function() { 
 
    var response = { 
 
     version: "1.0", 
 
     response: { 
 
      shouldEndSession: true, 
 
      directives: [ 
 
       { 
 
        type: "AudioPlayer.Stop" 
 
       } 
 
      ] 
 
     } 
 
    }; 
 

 
    this.context.succeed(response); 
 
}; 
 

 
SidRothPlayer.prototype.saveLastPlayed = function (userId, lastPlayed) { 
 
    lastPlayedByUser[userId] = lastPlayed; 
 
}; 
 

 
SidRothPlayer.prototype.loadLastPlayed = function (userId) { 
 
    var lastPlayed = null; 
 
    if (userId in lastPlayedByUser) { 
 
     lastPlayed = lastPlayedByUser[userId]; 
 
    } 
 
    return lastPlayed; 
 
};

Merci,

Jackson

Répondre

0

silencieux Echo et Echosim ne prend pas en charge HLS. Il faut avoir une Echo Machine pour tester le flux HLS.

Je viens de tester mon code sur une Echo Machine et cela fonctionne.