Player
The Player module allows to send audio (loaded from specified URL) or speech (generated by TTS) to any object that can receive media Call, Conference, Recorder) by using Player.sendMediaTo function. Audio will be mixed automatically if sent from a few players to one stream.
Add the following line to your scenario code to use the module:
require(Modules.Player);
All functions, events and classes of the module can be used only after this line.
Example
require(Modules.Player);
var call,
player;
VoxEngine.addEventListener(AppEvents.CallAlerting, function(e) {
call = e.call;
call.answer();
call.addEventListener(CallEvents.Connected, function(callevent) {
// Play intro speech
player = VoxEngine.createTTSPlayer("Hello, you have called Voximplant Player demo", Language.US_ENGLISH_FEMALE);
player.sendMediaTo(call);
// When playback finished
player.addEventListener(PlayerEvents.PlaybackFinished, function(playerevent) {
// Play mp3 file
player = VoxEngine.createURLPlayer("http://cdn.voximplant.com/yodl.mp3", true);
player.sendMediaTo(call);
setTimeout(VoxEngine.terminate, 10000); // end the session in 10 sec
});
});
call.addEventListener(CallEvents.Disconnected, VoxEngine.terminate);
});
functions
VoxEngine.createTTSPlayer
VoxEngine.createTTSPlayer(text: String, language: String, ttsoptions: TTSOptions): Player
Create new audio player with specified text; TTS is used to play this text. Media streams can later be attached using the Call.sendMediaTo method etc.
If text length exceeds 1500 characters the PlayerEvents.PlaybackFinished event is triggered with error description. After the very first playing, a phrase will be cached; each createTTSPlayer instance stores the cache data up to 2 weeks. Note that cache addresses only the URL, without additional headers. The cached phrase is available for all applications and further sessions.
Parameters
text:
StringText to say
- OPTIONAL
language:
StringTTS language. List of all supported languages: Language.
- OPTIONAL
ttsoptions:
TTSOptionsOptional parameters for TTS. Note that support of the TTSOptions.pitch parameter depends on the language and dictionary used. For unsupported combinations the PlaybackFinished event will be triggered with error 400.
Returns
Return:
Player
VoxEngine.createToneScriptPlayer
VoxEngine.createToneScriptPlayer(script: String, loop: Boolean): Player
Create new audio player with specified ToneScript sequence. Media streams can later be attached using the Call.sendMediaTo method etc.
Parameters
script:
StringToneScript string
- OPTIONAL
loop:
BooleanLooped playback
Returns
Return:
Player
Examples
var player = VoxEngine.createToneScriptPlayer("425@-19;5(1/4/1)");
VoxEngine.createURLPlayer
VoxEngine.createURLPlayer(url: String, loop: Boolean, onPause: Boolean): Player
Creates a new audio player with specified audio file URL. After the very first playback, a file will be cached; each 'createURLPlayer' instance stores the cache data up to 2 weeks. Note that cache addresses only the URL, without additional headers. The cached file is available for all applications and further sessions. File downloading has a timeout of 12 seconds. Reaching this timeout causes the "Timeout was reached" error. Media streams can later be attached using the Call.sendMediaTo method etc. IMPORTANT: each call object can send media to any number of other calls (media units), but can receive only one audio stream. A new incoming stream always replaces the previous one.
Parameters
url:
StringUrl of an audio file. Supported formats are: mp3, ogg & flac (mp3, vorbis, and flac codecs respectively). Maximum file size is 10 Mb.
- OPTIONAL
loop:
BooleanIf it's true, playback will be looped.
- OPTIONAL
onPause:
BooleanIf it's true, the player will set on pause right after creation. To continue playback use the Player.resume method. It's false by default.
Returns
Return:
Player
Examples
var player = VoxEngine.createURLPlayer("https://direct/link/to/the/file.mp3", true);