0

Problem with video playback

Hi all

Currently battling a problem with video playback

I am using a hardcoded video url for playback - either an mp4 or wmv

But in the logs when I kick of the player, I am seeing the following error

CODE
WR 00:00:20:389: [T:18965] FINISHED 2911.85 KB IN 3.10 s (940.22 KB/s) [http://www.xyz.com/Lake.wmv]
EM 00:00:20:425: [T:18965] Failure to load image buffer.
WE 00:00:20:429: [T:18965] !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
WE 00:00:20:429: [T:18965] ERROR!ERROR!ERROR!ERROR!ERROR!
WE 00:00:20:429: [T:18965] !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
WE 00:00:20:434: [T:18965] DV [com.xyz.widgets.w3]
WE 00:00:20:434: [T:18965] KFImageView: Can't load image "http://www.xyz.com/Lake.wmv"



Currently I am only passing over the video url and an id - is there something else I should be passing over or should have checked?

by
29 Replies
  • How are you trying to load the video? into the Media Player or as an image...?

    Please provide source code. No one can help you by looking at five log lines.
    0
  • apologies for that, the code is below

    CODE
    // Copyright 2010 ~ Widget Realm, Inc

    var SampleVideoView = new KONtx.Class({

    ClassName: 'SampleVideoView',
    Extends: KONtx.system.FullscreenView, //This is a Fullscreen View

    config: {
    playlist: null //Setup a config value for the playlist
    },

    //Create the View
    createView: function() {
    KONtx.mediaplayer.initialize(); //Put in the Mediaplayer
    this.controls.overlay = new KONtx.control.MediaTransportOverlay({}).appendTo(this); //Create the Overlay Controls
    //No need to attach the overlay to the mediaplayer - it happens automatically
    },
    //Now out the focus of on the overlay controls
    focusView: function() {
    this.controls.overlay.focus();
    },

    //Setup the Update View Functionality
    updateView: function() {
    //Attach the Playlist Listeners
    this._boundDispatcher1 = this._playerEndDispatcher.subscribeTo(KONtx.mediaplayer, "onPlaylistEnd", this);
    this._boundDispatcher2 = this._playerChangeDispatcher.subscribeTo(KONtx.mediaplayer, "onStateChange", this);

    //Check to see if the current Media File is already playing
    //Handles the view being called to update from the Dock/Sidebar Overlay
    if(!this._isSelectedVideoAlreadyPlaying()){
    this._startMedia();
    }
    },

    //Remove the listeners should the View be unFocused
    _onUnselectView: function() {
    this.parent();
    this._boundDispatcher1.unsubscribeFrom(KONtx.mediaplayer, "onPlaylistEnd");
    this._boundDispatcher2.unsubscribeFrom(KONtx.mediaplayer, "onStateChange");
    },
    //Create the listener for when the playlist ends
    _playerEndDispatcher: function(event) {
    if(event.type == "onPlaylistEnd") {
    KONtx.application.previousView();
    }
    },
    //Create the listener for states coming from the playlist
    _playerChangeDispatcher: function (event) {
    if(event.payload.newState == KONtx.mediaplayer.constants.states.ERROR) {
    this._showErrorDialog(); //Line 99
    }
    else if(event.payload.newState == KONtx.mediaplayer.constants.states.STOP) {
    KONtx.application.previousView();
    }
    },
    //Check to see if the current video is already playing
    _isSelectedVideoAlreadyPlaying: function () {
    if (KONtx.mediaplayer.isPlaylistEntryActive) {
    if (!this.persist.media.id) {return true;}
    if (this.persist.media.id === KONtx.mediaplayer.playlist.currentEntry.videoId) {return true;}
    }
    return false;
    },
    //Start the Media by building the playlist
    _startMedia: function() {
    if(this._setPlaylist())
    {
    KONtx.mediaplayer.playlist.set(this.config.playlist);
    KONtx.mediaplayer.playlist.start();
    }
    else
    {
    this._showError(); //Line 116
    }
    },

    //Build the playlist when called based off the media being passed in
    _setPlaylist: function() {
    if(this.persist.imageURL) //We are going to check that we have a valid media config
    {
    print('Media URL: '+$dump(this.persist.imageURL,2));
    this.config.playlist = new KONtx.media.Playlist();
    var entry = new KONtx.media.PlaylistEntry(this.persist.imageURL);
    entry.videoId = "1";
    this.config.playlist.addEntry(entry);
    return true;
    }

    return false;
    },

    _showErrorDialog: function() {
    var self = this;
    new KONtx.dialogs.Alert({
    title: 'Video Could Not Be Loaded',
    message: 'We are sorry the video requested could not be loaded.',
    buttons: [
    { label: 'Try Again', callback: function() {
    self._startMedia();
    } },
    { label: 'Return to Previous', callback: function() {
    KONtx.application.previousView();
    } }
    ]
    });
    this._errorDialog.show();
    },

    _showError: function() {
    this._errorDialog = new KONtx.dialogs.Alert({
    title: 'Playlist Error',
    message: 'We are sorry, but the playlist provided is not correct.',
    buttons: [
    { label: 'Return to Previous', callback: function() {
    KONtx.application.previousView();
    } }
    ]
    }).show();
    }

    });


    imageURL is the item that is passing over the url to the video (ignore the naming of it as imageURL) - it is a link to a usable video - wmv or mp4
    0
  • problem is resolved, I was loading in the wrong view...sigh! apologies for that, basic script mistake on my part using "==" instead of "=" for a variable.

    Didnt spot it til this morning (thank you coffee and lack of sleep)
    0
  • You are missing one thing. You are not removing the handler for the view due to an error in our videoplayer.js file.

    CODE
    hideView: function() {
    this._onUnselectView();
    }


    We are updating our examples and templates to reflect this change. :)
    0
  • Examples and Templates updated!
    0
  • Given the above code, and the fix that I added to the videoplayer.js - just want to make sure the "this.persist.imageURL" should look like this

    CODE
    {
    "id":"1",
    "streams":[
    {
    "bitrate":"300",
    "url":"http://www.newbay.com/sample_mpeg4.mp4"
    },
    {
    "bitrate":"1500",
    "url":"http://www.newbay.com/sample_mpeg4.mp4"
    }
    ]
    }


    If so, then something is definitely askew, as nothing is playing, I have checked the logs, and I see the following

    CODE
    !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
    WE 00:00:42:625: [T:2810] ERROR!ERROR!ERROR!ERROR!ERROR!
    WE 00:00:42:625: [T:2810] !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
    WE 00:00:42:625: [T:2810] NewBay DV [com.newbay.widgets.w3]
    WE 00:00:42:625: [T:2810] TypeError: internals.media.currentEntry.streams[index] has no properties (mediaplayer.js: Line 595)
    WE 00:00:42:625: [T:2810] !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!


    I know its probably something small or even local (I am using a later version of Ubuntu then 8.04, I think its around 10.10 - but any pointers would be fantastic
    0
  • Everything looks fine. It may be the later version of Ubuntu.

    We have seen some weird problems using later versions.
    0
  • Quick thought... Ar you including the media patch file in your bundle?

    We have made this change to our video player example in our developer area.
    0
  • actually thats a thought - no, i havent used the patch at all
    0
  • I presume I just take https://gist.github.com/399364 and overwrite my current mediaplayer.js file?
    0
  • ok I re-downloaded the sample widget, and making sure I had the path Javscript/includes/path_to_patch.js in the init.js, etc

    However when I restarted the simulator I am still seeing


    CODE
    !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
    WE 00:00:42:300: [T:1951] ERROR!ERROR!ERROR!ERROR!ERROR!
    WE 00:00:42:300: [T:1951] !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
    WE 00:00:42:300: [T:1951] NewBay DV [com.newbay.widgets.w3]
    WE 00:00:42:300: [T:1951] TypeError: internals.media.currentEntry.streams[index] has no properties (mediaplayer_patch.js: Line 736)
    WE 00:00:42:300: [T:1951] !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
    0
  • I have a feeling it might be to do with the information stored in "his.persist.imageURL" that I am using - see above to look at what I am using
    0
  • QUOTE (ph3n0m @ Feb 2 2011, 09:15 AM) <{POST_SNAPBACK}>
    I have a feeling it might be to do with the information stored in "his.persist.imageURL" that I am using - see above to look at what I am using

    Dump the persist object and make sure it's what you're expecting.

    CODE
    log($dump(this.persist));


    It's a common Javascript error.
    0
  • CODE
    {
    imageURL => {"id":"1","streams":[{"bitrate":"300","url":"http://www.newbay.com/Lake.wmv"},{"bitrate":"1500","url":"http://www.newbay.com/Lake.wmv"}]}
    }


    is what I am seeing when I do the dump - so my only option is to re-install 9.04 and see if that fixes the video playback
    0
  • ok more of an update

    Fresh install of Ubuntu 9.04 - hurray
    Reinstalled widgets, simulator, etc - updated my widget to include the mediaplayer.js patch as indicated in the WidgetRealm video demo

    And unfortunately, I am still getting the same error as I did before

    CODE
    !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
    WE 00:00:25:469: [T:6420] ERROR!ERROR!ERROR!ERROR!ERROR!
    WE 00:00:25:469: [T:6420] !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
    WE 00:00:25:469: [T:6420] NewBay DV [com.newbay.widgets.w3]
    WE 00:00:25:469: [T:6420] TypeError: internals.media.currentEntry.streams[index] has no properties (mediaplayer_patch.js: Line 736)
    WE 00:00:25:469: [T:6420] !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!


    As recommend I did the dump of this.persist.imageURL and it all appears good as indicated in my earlier post.

    Does anyone have any other suggestions I can try - unfortunately a real TV for testing isnt available to me at this time, so if its a case of that it should play on a TV, and that the simulator is b0rked for some reason - then I can accept that
    0
  • QUOTE (ph3n0m @ Feb 3 2011, 03:53 AM) <{POST_SNAPBACK}>
    ok more of an update

    Fresh install of Ubuntu 9.04 - hurray
    Reinstalled widgets, simulator, etc - updated my widget to include the mediaplayer.js patch as indicated in the WidgetRealm video demo

    And unfortunately, I am still getting the same error as I did before

    CODE
    !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
    WE 00:00:25:469: [T:6420] ERROR!ERROR!ERROR!ERROR!ERROR!
    WE 00:00:25:469: [T:6420] !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
    WE 00:00:25:469: [T:6420] NewBay DV [com.newbay.widgets.w3]
    WE 00:00:25:469: [T:6420] TypeError: internals.media.currentEntry.streams[index] has no properties (mediaplayer_patch.js: Line 736)
    WE 00:00:25:469: [T:6420] !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!


    As recommend I did the dump of this.persist.imageURL and it all appears good as indicated in my earlier post.

    Does anyone have any other suggestions I can try - unfortunately a real TV for testing isnt available to me at this time, so if its a case of that it should play on a TV, and that the simulator is b0rked for some reason - then I can accept that


    One more suggestion, just try to dump the internals.media.currentEntry.streams object in the patch file..

    CODE
    log($dump(internals.media.currentEntry.streams));


    Thanks,
    Vivek
    0
  • hi all

    just a further update from myself - I scrapped the playlist idea, as it wasnt actually required - it was playback of a single file from a URL - which I am happy to say is fully working

    With the exception of one thing - if I test the video from one server, it works, however if I test it from the principle hosting server, while I have been assured it does have the correct mimetype attached, I am seeing this in the logs

    CODE
    cannot handle MimeType of text/html



    any thoughts?
    0
  • The TypeError is a Javascript error, nothing to do with Linux. It looks to me like the video you're passing to the player isn't what you're expecting it to be. Where did you get that video url? Are you sure the video is encoded properly? Try another wmv stream.
    0
  • QUOTE (ph3n0m @ Feb 3 2011, 08:03 AM) <{POST_SNAPBACK}>
    hi all

    just a further update from myself - I scrapped the playlist idea, as it wasnt actually required - it was playback of a single file from a URL - which I am happy to say is fully working

    With the exception of one thing - if I test the video from one server, it works, however if I test it from the principle hosting server, while I have been assured it does have the correct mimetype attached, I am seeing this in the logs

    CODE
    cannot handle MimeType of text/html



    any thoughts?

    Ok, I used VideoSpec to see how the video was encoded. According to it, it's encoded as 720p, in an ASF container with a WMV9 codec. According to our tests, ASF is not an officially supported container, so your mileage may vary across OEMs (though I did get it to work on Vizio 2010 and Samsung 2010). We recommend MP4/H.264.

    If you want to see the headers, you can use the getAllResponseHeaders() method on the XMLHttpRequest object or use curl.
    CODE
    curl -I http://www.newbay.com/Lake.wmv

    Also, pasting the url into a browser should get you the headers (latest version of FF played the video, didn't test any others).
    0
  • Ah ok - just to clear up an error I made - http://www.newbay.com/Lake.wmv, plays perfectly in the widget, but the same file on another server is returning that "text/html" error as I previously described
    0
  • QUOTE (Benjamin Toll @ Feb 3 2011, 10:13 AM) <{POST_SNAPBACK}>
    The TypeError is a Javascript error, nothing to do with Linux. It looks to me like the video you're passing to the player isn't what you're expecting it to be. Where did you get that video url? Are you sure the video is encoded properly? Try another wmv stream.

    Re-installing the OS to fix a type error. Priceless. :D
    0
  • QUOTE (ph3n0m @ Feb 4 2011, 05:38 AM) <{POST_SNAPBACK}>
    Ah ok - just to clear up an error I made - http://www.newbay.com/Lake.wmv, plays perfectly in the widget, but the same file on another server is returning that "text/html" error as I previously described

    Did you get your issue sorted out?
    0
  • No not yet, still under investigation, but initially it looks like the other server (the one with the playback issue) is returning the files with the correct mimetype, but there is another aspect to its configuration that is causing the widget to fall over

    If I get it resolved internally, I will post as much info as I can about how it was sorted - just for future help, etc
    0
  • Further update:

    Now looks like to access the file on this other server, I need to be authenticated, even accessing the file directly, which is now causing a new headache

    For example, I cannot do a simple

    [code}
    this.config.playlist.addEntryByURL(this.persist.imageURL);
    [/code]

    as the imageURL while is a direct link to the file - still requires authentication to access it

    I was trying an alternative method like below

    CODE
    		if(this.persist.imageURL)	//We are going to check that we have a valid media config
    {
    this.config.playlist = new KONtx.media.Playlist();
    var cookies = JSON.parse(currentAppData.get("NWB"));
    var u = new URL();
    u.location = this.persist.imageURL;
    u.setRequestHeader("Accept", "application/vnd.newbay.dv-1.0+json");
    u.setRequestHeader("Cookie", cookies);
    u.fetchAsync(function(u) {
    log("!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!");
    log("!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!");
    log("!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!");
    log("!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!");
    log("!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!");
    log("!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!");
    log(u.response);
    log("!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!");
    log("!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!");
    log("!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!");
    log("!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!");
    log("!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!");
    log("!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!");
    log("!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!");
    log("!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!");
    if ( u.response == 200 ) {
    this.config.playlist.addEntryByURL(this.persist.imageURL);
    }

    }.bindTo(this));
    return true;
    }


    but while it returns a 200, its still not adding the imageURL to the playlist, so I am now baffled and stumped :(
    0
  • as a quick follow up - I dont suppose something like setSource can be used within the mediaplayer?
    0
  • QUOTE (ph3n0m @ Feb 9 2011, 02:31 AM) <{POST_SNAPBACK}>
    but while it returns a 200, its still not adding the imageURL to the playlist, so I am now baffled and stumped :(No. You have to create a playlist entry.
    0
  • The problem is that you need to pass authentication when fetching the media file itself

    For example: www.blah.com/something.mp4 - if I did a get on this URL, with the proper credentials, I would get a 200 response - no problem, however the "result" is not the file but the encoded parts

    CODE
    	b159a00c   00000024 66747970 33677035 00000200   ...$ftyp3gp5....
    b159a01c 76666a31 33677034 33677035 6d703432 vfj13gp43gp5mp42
    b159a02c 656d7020 00290432 6d646174 0154f5ac emp .).2mdat.T..
    b159a03c 70a62411 46856120 84a454ba a1317549 p.$.F.a ..T..1uI
    b159a04c 57495521 0208100c 40d4e68c 5b0f506f WIU!....@...[.Po
    b159a05c 1bd69856 786bbaf7 aabe36f7 b8573e61 ...Vxk....6..W>a
    b159a06c 51b0ca23 75250a55 7fcb81d5 48b94d34 Q..#u%.U....H.M4
    b159a07c c914488c d1755603 356c5b53 2d249940 ..H..uV.5l[S-$.@
    b159a08c 2e1e436d a5758c88 2573881a ce86cabe ..Cm.u..%s......
    b159a09c 822d2b0b 0128b3a6 db6834de 28c6e145 .-+..(...h4.(..E
    b159a0ac 61573cbc 59842e30 32546685 58c76142 aW<.Y..02Tf.X.aB
    b159a0bc 5136f14e bc22cfe8 5f3efe8a 3700c0bc Q6.N.".._>..7...
    b159a0cc e6b76c35 55dd00f1 a46903bb e53eed5b ..l5U....i...>.[
    b159a0dc 864f5d94 c5a24e1d 0dbb2362 77487b75 .O]...N...#bwH{u
    b159a0ec 0575b2f8 ddc74c7a ffc7c54a a5d66000 .u....Lz...J..`.
    b159a0fc 8aeefcb8 33949328 dcebf1ef 144faeca ....3..(.....O..
    b159a10c f9e41716 b4978aa9 4ef41d78 51a1558e ........N..xQ.U.
    b159a11c d47737b1 6838396f 00e3a517 f1c1675f .w7.h89o......g_
    b159a12c f3595ca8 d7f38af6 35dd6f55 c749c568 .Y\.....5.oU.I.h
    b159a13c b54dc8af 0837f001 5835a128 5538c187 .M...7..X5.(U8..
    b159a14c 0140b056 a15112b2 a5940894 45d490cb .@.V.Q......E...
    b159a15c 0e4e5e24 de17a51e 864fadb7 b5576056 .N^$.....O...W`V
    b159a16c c4da82aa 62dd32c4 20c379bb cbe0dc74 ....b.2. .y....t
    b159a17c 9d0f91f7 4fa4f01f eff23e12 c7d2f423 ....O.....>....#
    b159a18c 39ad4fb7 a103bba1 555dc875 9a66182b 9.O.....U].u.f.+
    b159a19c 2eebd5cd edc3bbc9 f153b231 558691a5 .........S.1U...
    b159a1ac c4f1436e 39f2c730 651fc8a1 54b0012c ..Cn9..0e...T..,
    b159a1bc ab599fe4 fd2140c9 3d20427e 3e9c3f6f .Y...!@.= B~>.?o



    But if I tried to fetch the mp4 url above directly via

    CODE
    this.config.playlist.addEntryByURL(url_to_file)


    I would get a 406 as the above url request does not have the right credentials. That is what I am wondering about - is there anyway to pass credentials in the "addEntryByUrl" call?
    0
  • QUOTE (ph3n0m @ Feb 14 2011, 07:01 AM) <{POST_SNAPBACK}>
    The problem is that you need to pass authentication when fetching the media file itself

    For example: www.blah.com/something.mp4 - if I did a get on this URL, with the proper credentials, I would get a 200 response - no problem, however the "result" is not the file but the encoded parts

    CODE
    	b159a00c   00000024 66747970 33677035 00000200   ...$ftyp3gp5....
    b159a01c 76666a31 33677034 33677035 6d703432 vfj13gp43gp5mp42
    b159a02c 656d7020 00290432 6d646174 0154f5ac emp .).2mdat.T..
    b159a03c 70a62411 46856120 84a454ba a1317549 p.$.F.a ..T..1uI
    b159a04c 57495521 0208100c 40d4e68c 5b0f506f WIU!....@...[.Po
    b159a05c 1bd69856 786bbaf7 aabe36f7 b8573e61 ...Vxk....6..W>a
    b159a06c 51b0ca23 75250a55 7fcb81d5 48b94d34 Q..#u%.U....H.M4
    b159a07c c914488c d1755603 356c5b53 2d249940 ..H..uV.5l[S-$.@
    b159a08c 2e1e436d a5758c88 2573881a ce86cabe ..Cm.u..%s......
    b159a09c 822d2b0b 0128b3a6 db6834de 28c6e145 .-+..(...h4.(..E
    b159a0ac 61573cbc 59842e30 32546685 58c76142 aW<.Y..02Tf.X.aB
    b159a0bc 5136f14e bc22cfe8 5f3efe8a 3700c0bc Q6.N.".._>..7...
    b159a0cc e6b76c35 55dd00f1 a46903bb e53eed5b ..l5U....i...>.[
    b159a0dc 864f5d94 c5a24e1d 0dbb2362 77487b75 .O]...N...#bwH{u
    b159a0ec 0575b2f8 ddc74c7a ffc7c54a a5d66000 .u....Lz...J..`.
    b159a0fc 8aeefcb8 33949328 dcebf1ef 144faeca ....3..(.....O..
    b159a10c f9e41716 b4978aa9 4ef41d78 51a1558e ........N..xQ.U.
    b159a11c d47737b1 6838396f 00e3a517 f1c1675f .w7.h89o......g_
    b159a12c f3595ca8 d7f38af6 35dd6f55 c749c568 .Y\.....5.oU.I.h
    b159a13c b54dc8af 0837f001 5835a128 5538c187 .M...7..X5.(U8..
    b159a14c 0140b056 a15112b2 a5940894 45d490cb .@.V.Q......E...
    b159a15c 0e4e5e24 de17a51e 864fadb7 b5576056 .N^$.....O...W`V
    b159a16c c4da82aa 62dd32c4 20c379bb cbe0dc74 ....b.2. .y....t
    b159a17c 9d0f91f7 4fa4f01f eff23e12 c7d2f423 ....O.....>....#
    b159a18c 39ad4fb7 a103bba1 555dc875 9a66182b 9.O.....U].u.f.+
    b159a19c 2eebd5cd edc3bbc9 f153b231 558691a5 .........S.1U...
    b159a1ac c4f1436e 39f2c730 651fc8a1 54b0012c ..Cn9..0e...T..,
    b159a1bc ab599fe4 fd2140c9 3d20427e 3e9c3f6f .Y...!@.= B~>.?o



    But if I tried to fetch the mp4 url above directly via

    CODE
    this.config.playlist.addEntryByURL(url_to_file)


    I would get a 406 as the above url request does not have the right credentials. That is what I am wondering about - is there anyway to pass credentials in the "addEntryByUrl" call?

    The issue here is authenticating using cookies. The tv system is not able to handle authenticating using cookies. It can only pass the video url to the engine, which in turn makes the fetch transmitting the cookies. So, in your case, the server authenticates and then returns the video byte stream, which the JavaScript can't handle. It can only be passed a video url, which is what the server should be returning. At that point, the tv would make another fetch for the byte stream with the video url it was passed by the playlist entry object.

    So, if you look closer at the documentation I gave you, it gives you a way to do this. When the tv reaches the entry in the playlist that needs to be authenticated, you'd make a separate request with your credentials. But you have to reconfigure the server to return a video url rather than a byte stream, as I outlined above. For example, the server could pass you a fast-expiring url once it authenticates you.

    Look again at what I had posted.
    0
  • i have same problem i think no body resolve this i found some of thing in ukash but i dont understand and site information and language is change
    0

Recent Posts

in General - Yahoo! TV Widgets