react-triton-digital-player

3.1.1 • Public • Published

react-triton-digital-player

React component to use triton digital sdk

Triton's technology is designed to help broadcasters, podcasters, and music services streamline their day-to-day operations, build their online audience, and maximize their online revenue.

This component was develop to help the triton sdk implemantation into your react project.

prerequisites

You have to import the Triton Digital SDK into you app.

<script src="//sdk.listenlive.co/web/2.9/td-sdk.min.js"></script>

how to use

Install

npm i react-triton-digital-player

or

yarn add react-triton-digital-player

ES5

var Player = require('react-triton-digital-player');

ES6

import Player from 'react-triton-digital-player';

EXAMPLE

import React, { Component } from 'react';
import Player from 'react-triton-digital-player';
 
class App extends Component {
    onAdBlockerDetected() {
        console.log('AdBlockerDetected');
    }
 
    setExternalProps(props) {
        console.log(props);
    }
    
    render() {
    
        const params = {
            station: 'YOUR_STATION',
            options: {
                setExternalProps: this.setExternalProps,
                onAdBlockerDetected: this.onAdBlockerDetected,
                autoPlay: true
            }
        };
 
        return (
            <div className="App">
                <header className="App-header">
                    <h1 className="App-title">MY APP</h1>
                </header>
                
                <Player params={params} />
            </div>
        );
    }
}
 
export default App;

OBS: options are optional.

params

All params: see here

All options: see here

how to use your own control component

import Player from 'react-triton-digital-player';
import myControls from '<path>';

class App extends Component {
    onAdBlockerDetected() {
        console.log('AdBlockerDetected');
    }

    setExternalProps(props) {
        console.log(props);
    }
    
    render() {
  	return (
            <div className="App">
                <header className="App-header">
                    <h1 className="App-title">MY APP</h1>
                </header>
                <Player params={params}>{props => myControls(props)}</Player>
            </div>
        );
    }
}

export default App;

myControls

import React from 'react';
import PropTypes from 'prop-types';

const myControls = props => {
    return (
        <div>
            <button
                onClick={e => {
                    e.preventDefault();
                    props.onStop();
                }}>
                STOP
            </button>

            <button
                onClick={e => {
                    e.preventDefault();
                    props.onPlay({ station: props.params.station });
                }}>
                PLAY
            </button>

            <button
                onClick={e => {
                    e.preventDefault();
                    props.onSetVolume(0.3);
                }}>
                VOLUME 0.30
            </button>
            <button
                onClick={e => {
                    e.preventDefault();
                    props.onSetVolume(1);
                }}>
                VOLUME MAX
            </button>
        </div>
    );
};

myControls.propTypes = {
    playerState: PropTypes.object.isRequired,
    onPlay: PropTypes.func,
    onStop: PropTypes.func,
    onPause: PropTypes.func,
    onResume: PropTypes.func,
    onIncreaseVolume: PropTypes.func,
    onDecreaseVolume: PropTypes.func,
    onSetVolume: PropTypes.func
};

export default myControls;
Method Args Options Description
onSetVolume volume 0-1 The new volume percentage between 0 and 1. Example: 0.75 for 75%
onIncreaseVolume volume 0-1 Same setVolume but the value will increase the current volume with the value passed.
onDecreaseVolume volume 0-1 Same setVolume but the value will decrease the current volume with the value passed.
onPlay params see here Start the playback of a live audio/video stream.
onStop - - Stop the stream.
onPause - - Pause the stream.
onResume - - Resume the stream.

Play Params

This section was provided by Triton Documentation.

Start the playback of a live audio/video stream.

Parameters: params (object). Required: Yes. The playback configuration object Properties


station (String) or mount (String). Required: Yes. The station on the Triton Digital platform. Example: TRITONRADIOMUSIC Mount on the Triton Digital platform. Example: TRITONRADIOMUSICAAC

connectionTimeOut (Number). Required: No. Duration of the Live Stream Connection before timing out (minutes) - default value is 0 (de-activated). When a connectionTimeOut value is defined, after "connectionTimeOut"* minutes, the controller sends a "timeout-alert" event that the stream will stop. When receiving that alert, the website developer (client side) should display a message to the user, such as: “To keep the connection alive, please click here or the stream will stop.” The user can continue to listen to the live stream by clicking on this message: the website developer (client side) needs to call the function restartConnectionTimeOut() (see below) and hide the message. If the user does not click on the message, then 30 seconds after the alert is displayed, the stream will automatically stop.The controller sends a "timeout-reached" event. If the user wants to listen again to the stream, the website developer (client side) needs to display another message. For example: "The stream was stopped (connection time out occurred). To listen again to the live stream, please click here. Thank you." When the user clicks on this message, the website developer (client side) need to call the function play() and hide the message.

timeShift (Boolean). Required: No. Set to true to enable client-side TimeShifting, set to false to disable

trackingParameters (Object). Required: No. The trackingParameters values are appended to the stream URL. They are used to log information from player.

Example: {KEY1:'value1', KEY2:'value2', ... }

Example: Play the TRITONRADIOMUSIC station stream:

play( {station: 'TRITONRADIOMUSIC'} );

Example: Play the TRITONRADIOMUSICAAC mount stream:

play({mount: 'TRITONRADIOMUSICAAC'} );

Example: Play the TRITONRADIOMUSIC station stream with the connection timeout set to 60 minutes and the TimeShifting enabled.

play( {station: 'TRITONRADIOMUSIC', connectionTimeOut:60, timeShift:true} );

Play Param Options

All options are optional

Option Type Default Description
setExternalProps function undefined The player component will call this function providing a json with artist name and music title.
onAdBlockerDetected function undefined The player will call this function when add block was detected.
autoPlay boolean false Play will be automatically

Note: the autoplay feature is disabled on mobile (iOS, Android) with HTML5. You must call the play function only after the result of a user action.

Package Sidebar

Install

npm i react-triton-digital-player

Weekly Downloads

1

Version

3.1.1

License

MIT

Last publish

Collaborators

  • abdalla