[SailfishDevel] Embedded video play

Rudi Timmermans rudi.timmer at gmx.us
Tue Mar 8 08:53:38 UTC 2016


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.


-------------- 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/c41ac773/attachment.bin>


More information about the Devel mailing list