-
Notifications
You must be signed in to change notification settings - Fork 60
Tizen API: AVPlay
zuzu_yun edited this page Mar 21, 2017
·
28 revisions
For converting AVPlay API of tizen to TOAST API, please refer to the followings.
If you want more information, please refer to toast.Media and toast.MediaPlugin
-
Before
webapis.avplay.open('url');
-
After
var media = toast.Media.getInstance(); media.open('url');
-
Before
webapis.avplay.prepare(); webapis.avplay.setDisplayRect(x, y, width, height); webapis.avplay.play(); var status = webapis.appcommon.AppCommonScreenSaverState.SCREEN_SAVER_OFF; webapis.appcommon.setScreenSaver(status, function() {}, function() {});
-
After
var elContainer = media.getContainerElement(); elContainer.style.position = 'fixed'; elContainer.style.left = 0 + 'px'; // 'x' elContainer.style.top = 0 + 'px'; // 'y' elContainer.style.width = 1920 + 'px'; // 'width' elContainer.style.height = 1080 + 'px'; // 'height' document.body.appendChild(elContainer); media.play(); //You don't have to call setScreenSaver Method. It is configurated by toast.avplay.
-
Before
webapis.avplay.stop(); var status = webapis.appcommon.AppCommonScreenSaverState.SCREEN_SAVER_ON; webapis.appcommon.setScreenSaver(status, function() {}, function() {});
-
After
media.stop(); //You don't have to call setScreenSaver Method. It is configurated by toast.avplay.
-
Before
webapis.avplay.pause(); var status = webapis.appcommon.AppCommonScreenSaverState.SCREEN_SAVER_ON; webapis.appcommon.setScreenSaver(status, function() {}, function() {});
-
After
media.pause(); //You don't have to call setScreenSaver Method. It is configurated by toast.avplay.
-
Before
webapis.avplay.jumpForward(10000); //The number of milliseconds to be forwarded
-
After
var curPos = media.getCurrentPosition(); media.seekTo(curPos + 10000); //The position to seek in milliseconds
-
Before
webapis.avplay.jumpBackward(10000); //The number of milliseconds to be backwarded
-
After
var curPos = media.getCurrentPosition(); media.seekTo(curPos - 10000); //The position to seek in milliseconds
-
Before
var listener = { onbufferingstart: function() { console.log('Buffering start.'); }, onbufferingprogress: function(percent) { console.log('Buffering progress data : ' + percent + '%'); }, onbufferingcomplete: function() { console.log('Buffering complete.'); }, oncurrentplaytime: function(currentTime) { console.log('Current Playtime : ' + currentTime); }, onbufferingcomplete: function() { console.log('Buffering complete.'); }, onevent: function(eventType, eventData) { console.log('event type error : ' + eventType + ', data: ' + eventData); }, onerror: function(eventType) { console.log('event type error : ' + eventType); }, onsubtitlechange: function(duration, text, data1, data2) { console.log('Subtitle Changed.'); }, ondrmevent: function(drmEvent, drmData) { console.log('DRM callback: ' + drmEvent + ', data: ' + drmData); }, onstreamcompleted: function() { console.log('Stream Completed'); } } webapis.avplay.setListener(listener);
-
After
media.setListener({ onevent: function (evt) { switch(evt.type) { case 'STATE': console.log('Media State changed: ' + evt.data.oldState + ' -> ' + evt.data.state); if(evt.data.oldState != 'STALLED' && evt.data.state == 'STALLED'){ console.log('Buffering start.'); } else if(evt.data.oldState == 'STALLED' && evt.data.state != 'STALLED'){ console.log('Buffering complete.'); } break; case 'DURATION': console.log('Media duration updated: ' + evt.data.duration + 'ms'); break; case 'POSITION': console.log('Media position updated: ' + evt.data.position + 'ms'); break; case 'BUFFERINGPROGRESS': console.log('Media buffering in progress: ' + evt.data.bufferingPercentage + '%'); break; case 'ENDED': console.log('Media ended'); break; } }, onerror: function (err) { console.error('MediaError occured: ' + JSON.stringify(err)); } });
toast MediaPlugin constructor bind to toast.media with option data to be able to playback special content.
var media= toast.Media.getInstance();
var mediaPlugin = new toast.MediaPluginHLS();
media.resetPlugin();
media.attachPlugin(mediaPlugin);
media.open('http://mydomain.com/video.m3u8');
-
Before
webapis.avplay.setStreamingProperty('ADAPTIVE_INFO', 'BITRATES=yourBitRates|STARTBITRATE=yourStartBitRate|SKIPBITRATE=yourSkipBitRate');
-
After
var HLSData = { BITRATES : 'yourBitRates', STARTBITRATE : 'yourStartBitRate', SKIPBITRATE : 'yourSkipBitRate' }; var mediaPlugin = new toast.MediaPluginHLS(HLSData);
-
Before
webapis.avplay.setStreamingProperty('SET_MODE_4K', 'TRUE');
-
After
var mediaPlugin = new toast.MediaPluginUHD();
-
Before
webapis.avplay.open('url'); var wideVineData = 'DEVICE_ID=myDeviceId|DEVICET_TYPE_ID=myDeviceTypeId|STREAM_ID=myStreamId|DRM_URL=http://yourDrmUrl.com|I_SEEK=yourI\_SEEK|CUR_TIME=yourCurTime|PORTAL=yourPortal|USER_DATA=yourUserData' webapis.avplay.setStreamingProperty('WIDEVINE', wideVineData); webapis.avplay.prepare();
-
After
var wideVineData = { DEVICE_ID : 'yourDeviceId', DEVICET_TYPE_ID : 'yourDeviceTypeId', //ex) '60' STREAM_ID : 'yourStreamId', DRM_URL : 'http://yourDrmUrl.com', I_SEEK : 'yourI\_SEEK', //ex) 'TIME' CUR_TIME : 'yourCurTime', //ex) 'PTS' PORTAL : 'yourPortal', USER_DATA : 'yourUserData', }; var mediaPlugin = new toast.MediaPluginWideVine(wideVineData); media.attachPlugin(mediaPlugin); // It is required to set widevine data, before calling "open" method. media.open('url');
<tizen:privilege name="http://developer.samsung.com/privilege/drmplay"/>
-
Before
var playReadyData = { LicenseServer : 'myLicenseServer', CustomData : 'myCustomData' }; webapis.avplay.setDrm('PLAYREADY', 'SetProperties', JSON.stringify(playReadyData));
-
After
var playReadyData = { LicenseServer : 'myLicenseServer', CustomData : 'myCustomData' }; var mediaPlugin = new toast.MediaPluginPlayReady(playReadyData);
uuuu
Getting Started
Converting Tizen to Toast
- Prepare to convert
- Tizen API: AVPlay
- Tizen API: DrmInfo(Deprecated)
- Tizen API: Application
- Tizen API: TVInputDevice
- Tizen API: TVAudioControl
- Tizen API: TVWindow
- Tizen API: TVChannel
- Tizen API: IME
- Tizen API: ProductInfo
- Tizen API: Network
- How to detect platform
Converting Legacy to Toast
- Prepare to convert
- Legacy API: AVPlay
- Legacy API: TVInfo
- Legacy API: Common
- Legacy API: InputDevice
- Legacy API: AudioControl
- Legacy API: TVWindow
- Legacy API: TVChannel
- Legacy API: IME
- How to detect platform
API Reference
- supported cordova plugin
- toast.Media
- toast.MediaPlugin
- toast.drminfo(Deprecated)
- toast.application
- toast.inputdevice
- toast.tvaudiocontrol
- toast.tvwindow
- toast.tvchannel
- toast.billing
Supported platforms
Sample App
Contribution
Frequently Asked Questions