Access WMP Media Library? - Windows Mobile Development and Hacking General

Is it possible to access the media library information stored in Media Player using C#?
I am quite new to .NET programming and thought it would be good to develop an alternative library viewer with nice big buttons (the built in one is really fiddly without using the stylus). However, I cant find any information anywhere on how to actually read the library data.
I know there are probably other media players out there that already have this feature but I like using media player and it is built in.
If someone can point me in the right direction, or at least tell me that it cant be done using .NET, that would be great.
Cheers

Related

Access Media Library using C#?

I am thinking about writing an app that accesses the Media Library and displays each album as a nice big icon (possibly thumbnails of the album art). It would make it much easier to navigate the library than the current version built into Media Player.
First off, does anyone know of anything similar to this that is already available? I dont want to waste my time on it if I dont need to.
Secondly, could anyone point me in the right direction on how to get started? I cant find any information about accessing the media library anywhere.
I'm newish to this programming malarky so any links to examples would be appreciated.
Cheers.
http://msmobiles.com/news.php/4194.html
{austinpowersvoice}
looks to be your bag baby yeeeeaaahhh
{/austinpowervoice}

Windows Media Player help in Wizard

Does anyone know of any tweaks/ hacks/ xda-developers working on adding an auto-resume or a bookmarking option on top of Windows Media Player? Is this really hard to do? I'm surprised no one has worked on something like that yet.
Also, are there any free/ low resource-intensive media player applications that can play DRM-protected WMA files? My problem is a basic one: Conduits Pocket Player and some of the other "robust" media players are too much for me. They have more features than I ever use, and are way too resource-intensive for my little Wizard. I'm just trying to listen to audiobooks on my Wizard while working out, and hate having to locate my spot every time.
Thanks much for any help/ guidance/ suggestions.
Search for The Core Pocket Media Player. This is a very basic, yet powerful media player for PPC devices. But it doesn't have a bookmarking feature as you've described.

For the ROM Masters, Extracting WMP 10...

Hello All,
Ever since I got my MDA my old Toshiba e800 has been used less and less. However I do use it when traveling for media (bigger vga screen).
I like WMP 10. But it is not available as a standalone download from MS. And my Toshiba only has WMP 9. Is there a way to extract the installation file from the Wizard ROM so that I can install it on my Toshiba?
Thanks
PS...Or is there an alternate media player out there that has the 2 main features I want from WMP 10? I like the library (it is very similar to the one used in the desktop version of WMP 11). And showing album art for each song played.
Thanks
So basically I have been using Mortplayer with the Vista theme (looks like WMP11 desktop). But I really don't like the way mort player organizes, or rather allows access to, your music. It is very confusing. And I want my Girlfriend to be able to use it with little fuss (she is not very technically inclined, nor does she want to be)
WMP 10 has the same library structure as WMP Desktop 11. She is already comfortable with that "Type" of structure...i.e. Access by:
All music or
Album or
Artist or
Playlist or
Genre etc...
I assume that I what I asked above is either not possible, or is a big no-no (extracting WMP 10 from Wizard Rom).... So....
Any ideas what to do here?
Thanks
Ok, well never mind here....WMP Mobile 10 will not play nice with a networked folder..... iT works fine for traveling but as soon as we want to use it around the house browsing our large networked media drive it shows it's limitations.
Back to mort player...Thanks any way

panel linkage?

something just occurred in my mind, it has been said that apparently X1 uses the default WMP to playback movies and music that being accessed from media experience panel; this would mean that there is some link that connect that panel to WMP.
Now the important question is, can the panel link be redirected into other media players? If this is possible, it will be a great thing!
*edit*
even better if the same could be applied into the internet explorer home UI -is that a panel?-, which mean we can use Opera or others
It actually can play music through the panel directly also without using wmp
but it still use WMP right? or is it actually have it's own player?
nap007 said:
but it still use WMP right? or is it actually have it's own player?
Click to expand...
Click to collapse
In my opinion; It can be either... Panels are applications that not only are stand-alone applications, but they actually tie in with the device letting you communicate with other applications. Communication would of-course depend on the application in question... as in how much information it gives out that you can use in your panel and so on.
I love Panels over TF3D 'cos of customizability and its overall potential.
I myself am looking forward to implement panels - probably some completely stupid and useless stuff...
I downloaded the SDK and installed it when released, however was bummed out that for Panels you have to use C++. It has been AGES since i used that languge other than when really needed. I have been hearing that SE will support C# and vb.nEt in the end for Panel development, and i am really looking forward to that day. (maybe they already have, 'cos i haven't really checked for updates)
nap007 said:
but it still use WMP right? or is it actually have it's own player?
Click to expand...
Click to collapse
I does both on the preview I've seen of it. He showed the music playing in the actual program and he showed that you can open it into wmp. As far as if that can be changed i don't know.

Idea for a best WP app ever

Hi guys ;D
Sooo, I do not post very often, lol, I do not post at all due to constant lack of time, you know, daily job, family and stuff, anyways, here is the thing and I need your professional advice.
I've got a brilliant idea to make an app for a Windows Phone 8, basically, there is no application which syncs music using wireless, right? Yeah, so that will be an app like that, you know, easy sync, you can view music library from the phone, one click to transfer you songs to a phone, browse playlists, made by different music players, syncs them as well (I am aware of that there is no way to actually sync playlist object though).
Now, what I'm concerned about, is that a good idea for an app? Or maybe that's a stupid idea and no single person on planet earth will ever use it?
I am not really sure, because I do not want to invest a huge amount of a time to find out that. Can you help with making a right decision and give some advice maybe?
Thanks
I believe XBox music does this. Install it on your computer and it will scan your files and add them to your 'collection'. Which, in essence is your cloud collection. You can then retrieve anything you download through your xbox music pass on your phone / pc that is in your collection.
sukanaher said:
Hi guys ;D
Sooo, I do not post very often, lol, I do not post at all due to constant lack of time, you know, daily job, family and stuff, anyways, here is the thing and I need your professional advice.
I've got a brilliant idea to make an app for a Windows Phone 8, basically, there is no application which syncs music using wireless, right? Yeah, so that will be an app like that, you know, easy sync, you can view music library from the phone, one click to transfer you songs to a phone, browse playlists, made by different music players, syncs them as well (I am aware of that there is no way to actually sync playlist object though).
Now, what I'm concerned about, is that a good idea for an app? Or maybe that's a stupid idea and no single person on planet earth will ever use it?
I am not really sure, because I do not want to invest a huge amount of a time to find out that. Can you help with making a right decision and give some advice maybe?
Thanks
Click to expand...
Click to collapse
My app already does that. Sort of.
@Plazma1
I was basically thinking about completely offline software, - all this cloud stuff does not appeal to me. I am the guy who prefers to have my stuff 100% private, you know So do a lot of people I think
@mcosmin222
Can you post a link to your app or is it in your signature?
sukanaher said:
@Plazma1
I was basically thinking about completely offline software, - all this cloud stuff does not appeal to me. I am the guy who prefers to have my stuff 100% private, you know So do a lot of people I think
@mcosmin222
Can you post a link to your app or is it in your signature?
Click to expand...
Click to collapse
Signature.
@mcosmin222
Yeah, I've seen your app some long time ago, when it was pretty much "young"
But your solution differs quite a lot But I was just curious - are you using default WP8 music player mechanisms? Or maybe xaudio2 for example? With last, you can do more stuff - equalizer, lets say, nice controls for audio playing - you know, track bars and stuff. The only drawback is that you really do not have any access to WP audio library and that limitation sucks big time
I was thinking about such player but that is just too much hassle with storing music in isolated storage
sukanaher said:
@mcosmin222
Yeah, I've seen your app some long time ago, when it was pretty much "young"
But your solution differs quite a lot But I was just curious - are you using default WP8 music player mechanisms? Or maybe xaudio2 for example? With last, you can do more stuff - equalizer, lets say, nice controls for audio playing - you know, track bars and stuff. The only drawback is that you really do not have any access to WP audio library and that limitation sucks big time
I was thinking about such player but that is just too much hassle with storing music in isolated storage
Click to expand...
Click to collapse
By default the app uses the built-in player but you can switch modes to make it use a different player with more features. Go to Help+Settings, last tab.
I found ways of getting music in isostore faster for the user, one of them involves downloading from skydrive, the other involves direct file transfers between the phone and a desktop companion.
For WP7, what you propose is pretty difficult. But I can do this on Windows 8 + Windows Phone 8 app (I am building a companion app which runs on Metro). Once I can get myself a windows phone 8, this will get sped up considerably
I'm not sure third party apps can change things in the music library. Still, even if it would require its own player, I say go for it, because the native WP8 player makes me sad.
SilverHedgehog said:
I'm not sure third party apps can change things in the music library. Still, even if it would require its own player, I say go for it, because the native WP8 player makes me sad.
Click to expand...
Click to collapse
The app is almost ready for public release. I am just waitting to finish the 8.1 version and make them both public at the same time.
You can download the phone version from the link in my signature.
@mcosmin222
Yes, I was talking about WP8, - I didn't realize that your app is for WP7 actually ;P Dunno how things looks like on WP7 regarding xaudio2, on WP8 you got C++ support for it, and I have tested playing some random music with it and in fact, it works. Equalizer works - not the best EQ I've seen in my life but its something.
@SilverHedgehog
Nope, there is no write access to the music library on WP8 device, you can only read songs names and that's it. Not a big deal. But anyways, with a custom player there are following issues:
1. Player has to have its own music library within app isolated storage, so now you have 2 places where you have your music stored and that is inconvenient.
2. Player must be put in a background, and yet there are no "legal" ways to use proper multitasking. And even if we put this app in a background as geolocation app (so it need to use GPS time to time as well), - there will be no integration with a system itself - so no quick controls and stuff.
I was talking about completely custom 3rd party audio player, without any single standard mechanism used.
sukanaher said:
@mcosmin222
Yes, I was talking about WP8, - I didn't realize that your app is for WP7 actually ;P Dunno how things looks like on WP7 regarding xaudio2, on WP8 you got C++ support for it, and I have tested playing some random music with it and in fact, it works. Equalizer works - not the best EQ I've seen in my life but its something.
@SilverHedgehog
Nope, there is no write access to the music library on WP8 device, you can only read songs names and that's it. Not a big deal. But anyways, with a custom player there are following issues:
1. Player has to have its own music library within app isolated storage, so now you have 2 places where you have your music stored and that is inconvenient.
2. Player must be put in a background, and yet there are no "legal" ways to use proper multitasking. And even if we put this app in a background as geolocation app (so it need to use GPS time to time as well), - there will be no integration with a system itself - so no quick controls and stuff.
I was talking about completely custom 3rd party audio player, without any single standard mechanism used.
Click to expand...
Click to collapse
C++ for WP8 only works for native games. You can not build a player app that will run in the background using C++. So your library is useless, unfortunately.
My app fully supports WP8 as well.
As I said, there are ways to legal ways to go around the problems you just mentioned, and my player does that already. But you can not use C++ to do it. My decoders are written in pure C#.
You can not avoid "standard" mechanisms when working on an operating system. Even if you wrote all with ANSI C++, you would still depend on the system.
if you want, we could collaborate and use your library for winRT.
@mcosmin222: You can create native "component" (a C++/CX DLL) which is usable by non-game apps just fine. It *should* even work with background agents (there's no technical reason it wouldn't; is there a policy against it?) so I don't think that would be a problem. Marshaling data across the ABI does impose a small performance penalty but it shouldn't be significant for audio data.
Yes, that is what I was saying, C++ component, which implement all audio functionality using xaudio2, it completely manages all buffers and offsets and just plays audio All the rest is C# code, which calls component in a separate thread - there is no such requirement when calling xaudio2 engine from games, but from regular app it has to be in a separate thread. I am not really sure right now because I was doing this research almost a year ago, just when got my ATIV S; from what I can recall, C# CG impacts in some way audio buffers processing by the system, basically that is what GoodDayToDie said. So this rest of the code is also responsible for working in a background by implementing pseudo geolocation functionality. And thats it! We got a background app which plays music
I've done this - I know it works
But, there is always some but, there is always something that just not play nice.
1. Music must be stored in app iso storage.
2. No integration with quick controls for music playback
3. Additional desktop app, that will transfer music to WP8 app iso storage
I really don't think that a regular users will ever go after such solution, which requires additional app to be installed. Another thing is that is requires user to learn new way of playing his/her music, - such app will never succeed. By success I mean attraction of at least half of a million users.
@mcosmin222
I am not saying that your solution will never succeed, if you are using standard methods and do not require user to change his/her habits - there is a good chance
GoodDayToDie said:
@mcosmin222: You can create native "component" (a C++/CX DLL) which is usable by non-game apps just fine. It *should* even work with background agents (there's no technical reason it wouldn't; is there a policy against it?) so I don't think that would be a problem. Marshaling data across the ABI does impose a small performance penalty but it shouldn't be significant for audio data.
Click to expand...
Click to collapse
Oh well...it is worth the try...
But I don't think it will work(just a guts feeling xD).
But I expect some stupid policy to stop it, especially those related to p/invoke.
EDIT: Hmm...this might actually work. I tried adding a reference to a C++ runtime lib project from a C# background audio agent and surprise surprise, it worked.
I stand corrected then
not sure how this all relates to dll's written using ANSI C++ though.
I do not believe the marshaling overhead would be too great. It probably would be small enough to work even with apps requiring better performance.
@sukanaher,
Do you have the component already ported to WP8? If so, can you share it please? It would speed things up considerably.
@mcosmin222
I haven't understood correctly - you were talking about using background agents, I was talking about multitasking by imitating geolocation tracking app, - well, I am not sure if this will work with background agents due to the fact, from what I remember, there are 2 types of background agents on WP8 - I got no idea how things look like on WP7. So, there is a local music playing agent and music streaming agent - in both cases you do not have access to a raw audio data, to raw bytes, you just specify network source or local source and thats it.
If you are planning to use xaudio2 and all its benefits - you will need to extract audio PCM data from file and audio stream as well, so you will need your algorithms working with a raw bytes (an actual file) - it is not possible in case of background agents on WP8 - they just load your file or stream and thats it - you cannot access its data.
For proper music player, you will have to implement everything from scratch, no background agents, proper, android like multitasking, access to a music library, access to a system, system integration, basically you need everything that is not available on Windows Phone 8 and from what I observe will not be available in 9 - MS just holds this functionality for them selfs, thats it, we are limited to the minimum.- that is why I am thinking more about dumping my WP device.
Yeah, I have an xaudio2 wrapper lib written a year ago somewhere on my PC - it is a mess, it depends on my other libs and it is just a static linking lib, it is not a component. If I would ever share this, I will have to prepare a proper static library or component, but at this moment, besides daily job, I'm involved into other projects.
sukanaher said:
@mcosmin222
I haven't understood correctly - you were talking about using background agents, I was talking about multitasking by imitating geolocation tracking app, - well, I am not sure if this will work with background agents due to the fact, from what I remember, there are 2 types of background agents on WP8 - I got no idea how things look like on WP7. So, there is a local music playing agent and music streaming agent - in both cases you do not have access to a raw audio data, to raw bytes, you just specify network source or local source and thats it.
If you are planning to use xaudio2 and all its benefits - you will need to extract audio PCM data from file and audio stream as well, so you will need your algorithms working with a raw bytes (an actual file) - it is not possible in case of background agents on WP8 - they just load your file or stream and thats it - you cannot access its data.
For proper music player, you will have to implement everything from scratch, no background agents, proper, android like multitasking, access to a music library, access to a system, system integration, basically you need everything that is not available on Windows Phone 8 and from what I observe will not be available in 9 - MS just holds this functionality for them selfs, thats it, we are limited to the minimum.- that is why I am thinking more about dumping my WP device.
Yeah, I have an xaudio2 wrapper lib written a year ago somewhere on my PC - it is a mess, it depends on my other libs and it is just a static linking lib, it is not a component. If I would ever share this, I will have to prepare a proper static library or component, but at this moment, besides daily job, I'm involved into other projects.
Click to expand...
Click to collapse
Ok, long story short:
Yes, you can access the stream of raw bytes from local storage. You may or may not do the same with online sources.
No, MS does not use a different kind of multitasking system. The difference is the MS player can actually access to user library.
Maybe, we can implement an equalizer filter which can be applied before the raw bytes get to the player. This can be done with C# too, so it is not required to use C++ at all (the difference in performance is minimal anyway) However, in order to do such a thing, one must implement media stream sources for the file formats which usually do not require streaming (like mp3, mp4, wav etc), so we can have access to the raw bytes sent to the player. This is very time consuming, and the reward isn't really all that big. Sure, if you have codecs in CX that are usable in WP apps, we can do this...
The only thing MS does to impair a proper music player is access to the user library.
double post failure
Anyways, we have strayed off topic a little bit, but from what I can see - there is no interest in such application, that will sync music to PC using wireless

Categories

Resources