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