I wish to understand how one can programmatically identify if a window is playing video content?
I used spy++ to identify particular attributes for windows playing video but I did not find any particular attributes associated with window playing video.
I have handles to all windows on screen and want to find which ones are playing video ? Could you please throw some light on how can one do this and are there any special properties associated with a window playing video?
I found similar article :
can we get window handle of the window which is playing video?
But I don't want to minimize application , I know user is using browser(ie,firefix,chrome) to watch video (from youtube,hulu)and window is visible on screen.
You can if you have execution privileges over the environment the Flash Player is executed in. You can listen for the playing event thrown by the Flash Player.
Listen for my Flash event in Javascript
Related
I am using "Push Source Desktop" filter for capturing screen in my application.
I hide my application while recording is going on. Only a button for stopping the recording is visible on screen.
The button also gets recorded by the filter. During playback of the saved recording the button is visible along with rest of the screen region.
Is there any way I can prevent the button from getting recorded ?
My aim is to record the screen without the button. I cannot hide the button as it required for stopping the recording of my application.
I have tried to alter the alpha component of my button and make it semi-transparent. But still the filter captures the semi-transparent button.
How can I get the background region of the button and ignore the capturing of the button itself?
The problem has actually nothing to do with DirectShow. Long story short, DirectShow starts when you send the image you already have using DirectShow API and form factor of your software item.
Your question is how to display something on the desktop and grab from the same desktop excluding the part you present to user. I don't think you can implement it accurately without going in too many details, but quite so often you can do a trick like this: you know the position of your UI element so you can identify what's below it in terms of window Z-order (another application window or desktop etc). You can ask this window to repaint into your DC, and then combine the parts into the video you send downstream as a DirectShow source.
Say I open Youtube,and the video starts playing. How do I find out what in-browser and system plugins / resources are being used to play the music / video?
Asking because on my Firefox, about 50% of the time, when I open youtube, it starts playing the audio of the page in the background, even as the video loads. So when the video is playing, there's audio with it, but there's the same audio, with a small delay playing in the background.
I've tried disabling the extra flash plugin that most other guides about this recommend, and it hasn't helped. Now I want to find out what my browser is using to play the background music.
Simplest thing is probably to right-click on the video and check if the menu that appears is the typical Flash rc-menu or the browser native video right-click menu.
I saw another question that sounds almost the same but the answers seem to be about whole desktop screen capture: DirectShow Source filter using Dekstop window as source.
I have looked at the PushSource and yes it does what it is meant to do, however I want the virtual webcam to grab a specific window (similar to how you can select to share a window in Skype's share screen).
How would I go about selecting a specific window as a capture for the virtual webcam? is there a specific method already in the DirectShow API that I don't know about that does this?
There is no specific method. Moreover the part of the sample that grabs from screen is already outside of DirectShow API, it is GDI instead.
So the solution is pretty simple, you GetWindowRect position of your window, and then grab from screen only this rectangle, not the whole desktop. Or instead, you can send WM_PAINT or WM_PRINTCLIENT to the window in order to request its paint into provided device context.
I am using MediaPlayerLauncher for playing video. How do we get some notification when the MediaPlayerLauncher is opened() and the video is finished it's playback or the MediaPlayerLauncher is closed.
You can't explicit know if it's from a video or another navigation, but the OnNavigatedTo event will tell you when the user returns to your page.
By using the built in MediaPlayer you are giving up a lot of control to playback. If you really must* know when a video has finished playing you should use the MediaElement and detect the MediaEnded event.
* The end of a movie is typically a grey area. Does it include any ending credits? Is it when the user has watched "enough"? Is a certain percentage through the video sufficient ?
I want to programmtically detect the state of movie currently being played in Windows Media Player. i..e if the movie is maximized I need to find that it is maximized and put the word "MAXIMIZED" in text file, if the movie is paused I need to capture PAUSED in text file, if movie is stopped I need to capture STOPPED in text file.
The capturing needs to happen in the background i.e. totally transparent to end user as the user takes action while watching the movie on Windows Media player
I am planning to achieve this using Visual Basic 6.0
Kindly provide me inputs / pointers on how to go about this.
Thanks
I think only way how to do this, is using Windows Media Player SDK.
Windows Media Developer Center
You have to create a Media Player plugin and access the state using the Media Player API.
Theoretically you could also do some external analysis of the Media Player, for example by enumerating its windows and handles and reading window texts, but that would be very "hacky" and most fragile.
Although creating a plugin sounds like a lot of work, it'll be the better solution in the long run.