Embedded WMP control - how to get resolution of current playing file? - windows

I have a Windows Media Player control embedded inside my webpage, I feed it some URL to stream from (ASF file).
How can I get from the WMP control the resolution in pixels of the file being played?
Thanks
Roey

I had a look on MSDN and looks like the WMP object model has some properties which might give you the height and width.
You need to embed the control in a page and use JavaScript to access these properties.

Related

microsoft.phone.controls.webbrowser won't show video clips

In my Windows Phone application I'm loading a html site into a view, really simple stuff with this method:
var itemView = view as NorwegianBrowserView;
var webBrowser = itemView.browserContainer;
webBrowser.Navigate(new Uri(_globalAccessObjects.ActiveNorwayLink,UriKind.RelativeOrAbsolute));
The site loads everything except a video clip. Or well it knows the video is there but it just shows a black square. And pressing that black square does nothing.
As i side note i can add that i got the same application for iOS and Android and they both got no problem in loading the very same website(+ they load the video). And here i can press the video clip and it will start playing.
Am i loading the website into my view the wrong way? or does microsoft.phone.controls.webbrowser not support a video clip?
Any help is much appreciated.
The ability to play video clips in line in a web page is dependent upon the version of Windows Phone you are running on and the format of the video.
Only Window Phone 8.1 supports playing video within a page. Unfortunately this isn't yet widely available.
Even then the video format may still be an issue and if not supported could lead to a placeholder image being displayed.

How to make screenshots on chromecast?

I would like to make screenshots of the receiver application running of the Chromecast device.
I need to have it running on the device to show the video and the application together.
Is there a way to do this ?
Ali Naddaf's answer is technically true, however with a little work I was able to make a faithful reconstruction of the screen, to the point that it is indistinguishable from an actual screenshot.
We will use code from the html2canvas project, see http://html2canvas.hertzen.com/documentation.html . It will render our screen to a canvas. In particular, copy&paste the compiled code from http://html2canvas.hertzen.com/build/html2canvas.js to the Chromecast console. (adding a tag to dom seems not to work) You can access the Chromecast console & developer tools by accessing the ip.ad.dr.ss:9222 port via Chrome.
Issue the following command:
html2canvas(document.body, {onrendered: function(canvas){document.write('');}});
This will destructively replace the screen with the screenshot (I find this convenient but you can easily think of a more polite way if you wish)
In the elements browser, you will have an img, with a base64 url specified as a src. Click on the url, chrome will open the image in a new tab. Hopefully it's the screenshot that you wanted.
You might find that some pictures are missing because of e.g. same origin policy. The javascript have other privileges than accessing images from html. If this happens, work it out somehow (use https for images for example), then goto 1.
You have your screenshot!
No, that is not possible due to many reasons such as media rights and security.
I'm extending zsolt-szatmari's answer into a copy-pastable script that you can use in the Chromecast Developer Tools console:
As he said, copy and paste http://html2canvas.hertzen.com/build/html2canvas.js code into the console
Call the html2canvas method: it will create a new canvas element into the DOM: html2canvas(document.body, { onrendered: function(canvas) { document.body.appendChild(canvas); } });.
Get a base64 string representation of the image currently displayed in the canvas: document.getElementsByTagName('canvas')[0].toDataURL('image/png');
You'll then get a very long base64 string: if you click on it, Chrome will show the image in a new tab. Please note that this image could be far from what is really shown on your Chromecast due to html2canvas limits:
The screenshot is based on the DOM and as such may not be 100%
accurate to the real representation as it does not make an actual
screenshot, but builds the screenshot based on the information
available on the page.
(source)
I was thinking that you could maybe use this to capture the canvas to an image file, which normally works in javascript with canvas:
var canvas = document.getElementById("mycanvas");
var img = canvas.toDataURL("image/png");
Of course then you would need to transfer this image file to somewhere - not exactly sure how to the last bit from the chromecast. Maybe that is not possible.
As a chromecast developer myself I needed screenshots of the app running to show customers. I ended up doing a kind of "simulation" of the chromecast - calling some mockup methods in javascript to display the data and then accessing my receiver app via the cast url on my desktop in the browser. Then I used a screen capture program to capture the browser output. This gave me the same screenshot as from running the receiver app on chromecast on TV, which is essentially just a browser showing your html+css+javascript receiver.

Why can't WP7 webbrowser display video?

I have an application in which I want a webview ( WebBrowser ) to open a site, which I think is one of the, if not exclusive functions of a webbrowser.
But it does not display video's, and some of the other media is scrambled too. Any idea for that?
P.S. I am not talking about the webbrowser app, I am talking about the webview, implemented inside an aplication that is not working properly.
Generally, the media is picked up by the appropriate media handler. If the video doesn't play in the WebBrowser control, it most likely means that its format is simply not supported.

Can the HubTile Source property be set to a GIF?

I'm building an app that generates a grid of HubTile objects from the Silverlight Toolkit representing people, with the Source property being set to a URL for their profile picture that's returned from a web service. If the person hasn't uploaded a profile picture, the URL that's returned is a GIF for a generic profile picture. It appears that the HubTile simply ignores the Source, because the image isn't being displayed. I've verified that the image exists at the provided URL. Are GIF's simply an unsupported image type for the HubTile? Unfortunately, the documentation on Codeplex is empty.
No, GIF images are not supported. From "Tiles Overview for Windows Phone":
Tile images can be either a .jpg or .png file
If you are referring to the HubTile control, it uses an Image under the hood which does not support GIFs either. As per Supported Media Codecs for Windows Phone
This file type [GIF] is unsupported by the Silverlight Image element

Browser screenshot as bitmap in WP7

I'm trying to get the screenshot of a given URL as a bitmap image on the Windows Phone. The WebBrowser class does not seem to have the DrawToBitmap method.
Any pointers on how to get this working?
Use WriteableBitmap to render the WebBrowser control and its contents to a bitmap as described by Laurent's article Taking a screenshot from within a Silverlight #WP7 application, which also explains how to save it to the media library.
You can't take a screenshot of the WebBrowser Control as there seems to be a bug with the way it works with WriteableBitmaps. An alternative method could be to send the URL to a web service which takes a screenshot on the server and returns it back to your app.

Resources