Question
I developed a Tizen TV application that streams video content using HLS. While the app works perfectly on my TV, the Tizen Store review team reports they cannot view the HLS content during their review process.
I've provided direct links to the HLS streams so reviewers can test them in any player, and they confirmed the streams work when accessed this way. However, they still can't view the content through my app.
Here's the relevant portion of my implementation code:
// Create video object
var avplayer = document.createElement('object');
avplayer.setAttribute('id', 'plugin');
avplayer.setAttribute('type', 'application/avplayer');
avplayer.setAttribute('style', 'width:1920px;height:1080px;opacity:1!important;z-index:-1!important;');
document.querySelector('body').appendChild(avplayer);
var plugin = webapis.avplay,
listener = {};
var self = this;
WebPlayerStrategy.call(this, { plugin: plugin });
var paused = true,
throwPlayingEvent = true;
function init() {
try {
listener = {
onbufferingstart: function() {
throwPlayingEvent = true;
self.event(self.TYPE.WAITING);
},
onbufferingprogress: function(percent) {},
onbufferingcomplete: function() {},
oncurrentplaytime: function(currentTime) {
paused = false;
self.event(self.TYPE.TIMEUPDATE);
if (throwPlayingEvent) {
throwPlayingEvent = false;
self.event(self.TYPE.PLAYING);
}
},
onevent: function(eventType, eventData) {},
onerror: function(eventType) {
self.event(self.TYPE.ERROR, self.ERROR.UNDEFINED);
},
onsubtitlechange: function(duration, text, data3, data4) {},
onstreamcompleted: function() {
self.event(self.TYPE.ENDED);
}
};
} catch (e) {
console.log(e);
}
}
self.setUrl = function(url, startVideo) {
url += '|COMPONENT=HLS';
try {
self.setUrlPlayer(url, startVideo);
} catch (e) {
console.log(e);
}
};
What could be causing this issue and how can I resolve it?
Answer
Problem Understanding
The issue occurs when Tizen Store reviewers cannot play HLS content within your app, despite:
- The streams working when accessed directly through other players
- The app functioning correctly on your development TV
This suggests the problem may be related to:
- Network configuration differences between your development environment and the review environment
- Specific implementation details in how your app handles HLS playback
- Potential DRM or authentication requirements that differ between direct access and app access
Solution Methods
-
Verify Network Requirements:
- Ensure your app properly handles network requests in different environments
- Check if any special network configurations are needed for HLS playback
-
Review AVPlay Implementation:
- Compare your code with the official AVPlay documentation
- Ensure all required steps for HLS playback are properly implemented
-
Test in Different Environments:
- Test your app on multiple devices and network configurations
- Consider using Tizen emulators with different network settings
Code Examples
For proper HLS implementation, refer to these official resources:
Additional Tips
- Provide detailed playback logs to the review team
- Include specific error messages if available
- Consider creating a test version with simplified playback for review purposes
- Ensure all required DRM configurations are properly implemented