[SailfishDevel] Embedded video play
Rudi Timmermans
rudi.timmer at gmx.us
Tue Mar 8 10:21:09 UTC 2016
Hi Andrey,
Here you got the links.
https://github.com/fidoraptor/harbour-facebook
https://github.com/fidoraptor/harbour-facebook/blob/master/qml/pages/helper/mediaDetect.js
Vriendelijke groeten,
Rudi Timmermans.
Op 08-03-16 om 11:16 schreef Andrey Kozhevnikov:
> Maybe just add a link to repo and to lines inside files? That will be
> easier for people to help.
> ------ Исходное сообщение ------
> От: "Rudi Timmermans" <rudi.timmer at gmx.us <mailto:rudi.timmer at gmx.us>>
> Кому: "Developers Mailing List SailfishOS" <devel at lists.sailfishos.org
> <mailto:devel at lists.sailfishos.org>>
> Отправлено: 08.03.2016 14:53:38
> Тема: [SailfishDevel] Embedded video play
>> Hi,
>> I have a problem here i try to autodetect the embedded video on a FB
>> page that's posted.
>> Normoly it should work like when mediadetect.js found the embedded
>> video then it should ready out the video URL and show a pylly menu in
>> may app the play the video with the external browser, but for some
>> resion it dont read out the URL dont realy know, is there someone
>> that can help me out with that.
>> Thanks
>> Here is the mediadetect.js script:
>> function getImgFullUri(uri) {
>> if ((uri.slice(0, 7) === 'http://') ||
>> (uri.slice(0, 8) === 'https://') ||
>> (uri.slice(0, 7) === 'file://')) {
>> return uri;
>> } else if (uri.slice(0, 1) === '/') {
>> var docuri = document.documentURI;
>> var firstcolon = docuri.indexOf('://');
>> var protocol = 'http://';
>> if (firstcolon !== -1) {
>> protocol = docuri.slice(0, firstcolon + 3);
>> }
>> return protocol + document.domain + uri;
>> } else {
>> var base = document.baseURI;
>> var lastslash = base.lastIndexOf('/');
>> if (lastslash === -1) {
>> return base + '/' + uri;
>> } else {
>> return base.slice(0, lastslash + 1) + uri;
>> }
>> }
>> }
>> // ////
>> // Detect HTML5 Video
>> var delement = document.documentElement.getElementsByTagName('video');
>> for (var i=0; i<delement.length; i++) {
>> if (delement[i].hasChildNodes()) {
>> console.debug("Has children");
>> var children = delement[i].childNodes;
>> for (var j = 0; j < children.length; j++) {
>> if (children[j].tagName === 'SOURCE') {
>> var data = new Object({'type': 'video'})
>> if (children[j].hasAttribute('src')) data.video =
>> getImgFullUri(children[j].getAttribute('src'));
>> navigator.qt.postMessage( JSON.stringify(data) );
>> break;
>> }
>> }
>> }
>> else if (delement[i].hasAttribute('src')) {
>> var data = new Object({'type': 'video'})
>> data.video = getImgFullUri(delement[i].getAttribute('src'));
>> navigator.qt.postMessage( JSON.stringify(data) );
>> }
>> }
>> // ////
>> // Detect embedded Youtube Video
>> var frames = document.documentElement.getElementsByTagName('iframe');
>> for (var i=0; i<frames.length; i++) {
>> var isrc = frames[i].getAttribute('src');
>> if (isrc.slice(0, 2) === '//') {
>> isrc = "http:" + isrc
>> }
>> var data = new Object({'type':'iframe'});
>> data.isrc = isrc;
>> navigator.qt.postMessage(JSON.stringify(data));
>> }
>> // mobilegeeks.de uses this
>> var frames =
>> document.documentElement.getElementsByTagName('pagespeed_iframe');
>> for (var i=0; i<frames.length; i++) {
>> var isrc = frames[i].getAttribute('src');
>> if (isrc.slice(0, 2) === '//') {
>> isrc = "http:" + isrc
>> }
>> var data = new Object({'type':'iframe'});
>> data.isrc = isrc;
>> navigator.qt.postMessage(JSON.stringify(data));
>> }
>> // facebook.com uses this and detecting html5 video only does somehow
>> not work
>> var delement =
>> document.documentElement.getElementsByClassName('widePic');
>> for (var i=0; i<delement.length; i++) {
>> if (delement[i].hasChildNodes()) {
>> console.debug("Has children");
>> var children = delement[i].childNodes;
>> for (var j = 0; j < children.length; j++) {
>> if (children[j].hasAttribute('data-store')) {
>> var data = new Object({'type': 'video'})
>> var jsonFacebook = children[j].getAttribute('data-store')
>> // data.video = src of that above json
>> var objJSON = eval("(function(){return " +
>> jsonFacebook + ";})()");
>> if (objJSON.type == "video") {
>> data.video = getImgFullUri(objJSON.src)
>> navigator.qt.postMessage( JSON.stringify(data) );
>> break;
>> } // if type == video
>> } // if data-store
>> } // for
>> } // if children
>> }
>> --
>> Vriendelijke groeten,
>> Rudi Timmermans.
>
>
> _______________________________________________
> SailfishOS.org Devel mailing list
> To unsubscribe, please send a mail to devel-unsubscribe at lists.sailfishos.org
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.sailfishos.org/pipermail/devel/attachments/20160308/47baae75/attachment.html>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: smime.p7s
Type: application/pkcs7-signature
Size: 3705 bytes
Desc: S/MIME-cryptografische ondertekening
URL: <https://lists.sailfishos.org/pipermail/devel/attachments/20160308/47baae75/attachment.bin>
More information about the Devel
mailing list