i8beef / node-red-contrib-castv2

MIT License
22 stars 15 forks source link

TTS & Metadata #34

Closed eabinga closed 4 years ago

eabinga commented 4 years ago

In version 3.2.3 I could not get metadata to work with TTS as described in the example.

//DefaultMediaReceiverAdapter.js Line 53
.then(url => DefaultMediaReceiverAdapter.buildMediaObject({ url: url, contentType: "audio/mp3", title: command.metadata && command.metadata.title ? command.metadata.title : "tts" }))

This passes a title object to buildMediaObject, but it expects a metadata object. Change it to:

.then(url => DefaultMediaReceiverAdapter.buildMediaObject({ url: url, contentType: "audio/mp3", metadata: command.metadata }))

to make TTS consistent with MEDIA, then it works as expected. Bonus: can include images, subtitles etc. as well.

i8beef commented 4 years ago

It IS passing a metadata object, that it builds on the fly. Maybe this is clearer:

let metadata = {
    url: url,
    contentType: "audio/mp3",
    title: command.metadata && command.metadata.title ? command.metadata.title : "tts"
};
...
.then(url => DefaultMediaReceiverAdapter.buildMediaObject(metadata))
i8beef commented 4 years ago

Oh, I see what you mean, my bad, yeah Ill fix that.

i8beef commented 4 years ago

Pushed.