[App][2011-10-04] mVu Mobile Viewer - 1.0.12.8 - Windows Mobile Apps and Games

mVu Mobile Viewer - 1.0.12.8
Features:
- Search sites (YouTube, Tube8, Pornhub, etc.) by keyword
- Stream video to player in flv, mp4, mpg, or 3gp format (depending on site)
- Save videos to device
- Create m3u playlists
- Extract audio (MP3/AAC) from FLV files
Requirements:
- .Net Compact Framework 3.5
- A video player capable of playing flv, mp4 and/or 3gp videos. Coreplayer is recommended. See notes below.
- Must associate video player with Flash Video, .3gp, and .m3u (playlist) files.
NOTE: The latest version can be downloaded here:
Download Now!
Changelog:
Code:
1.0.12.8 - October 4, 2011
- Fixed YouTube
1.0.11.26 - July 25, 2011
- Fixed YouTube
- Removed CollegeHumor
- Removed Dailymotion
1.0.10.9 - May 10, 2011
- Fixed Pornhub
- Removed Tnaflix
1.0.9.2 - April 11, 2011
- Fixed YouTube
1.0.8.10 - April 3, 2011
- Fixed Tube8
1.0.7.32 - March 30, 2011
- Fixed YouTube
1.0.6.16 - March 15, 2011
- Fixed xHamster
1.0.5.58 - February 21, 2011
- Added CollegeHumor
- Fixed notifications so they can be dismissed properly
- Fixed NullReferenceException in Options dialog
- Fixed issues that could occur with playing YouTube videos
- Fixed issue with download file being locked if error occurred during download.
1.0.4.44 - February 17, 2011
- Fix for NullReferenceException on some Dailymotion searches
- Improved general error handling code
- A few miscellaneous bug fixes
1.0.3.8 - February 13, 2011
- Added automatic update check
- Possible fix for "There was no XML start tag" error
- An uncompressed version of the CAB file is now available
- A few miscellaneous bug fixes
1.0.2.5 - February 9, 2011
- Fixed keyword search in YouPorn
- Added xHamster
- A few miscellaneous bug fixes
1.0.1.19 - February 8, 2011
- Fixed issue with mVu not working when Opera Mobile is set as the default browser.
1.0.0.0 - February 7, 2011
- UI redesign
- Added Dailymotion
- Added YouPorn
- Added ability to extract audio from FLV files
- See complete list of changes at http://bik2000.appspot.com
0.7.10.0 - November 15, 2010
- Fixed Tube8.
0.7.9.0 - September 21, 2010
- Added Tnaflix.
0.7.8.0 - August 30, 2010
- Fixed YouTube streaming.
- Works in CorePlayer. Have not tested TCPMP.
0.7.6.0 - July 29, 2010
- Fixed exception on download complete.
- Notification now appears when download complete.
0.7.5.0 - July 23, 2010
- Partial fix for YouTube not working. Save now works. Coreplayer
doesn't seem to like the new URL for streaming though.
- If you select a video format that is not available, mVu will now tell you
which formats are available.
- Download complete notifications are now removed when you dismiss them.
0.7.4.0 - July 7, 2010
- Fixed issue with thumbnails getting mixed up if you started a search
before thumbnails completed downloading from last search
- Added the rest of the Pornhub categories
- Added additional error handling to try to track down YouTube
exceptions experienced by some people
- Note that the cab file size is much smaller for this version as the
cab file is now compressed
0.7.3.0 - June 29, 2010
- Added download manager functionality
- Can now have multiple concurrent downloads
- Ability to pause/resume and cancel downloads
- Fixed issue with Tube8 keyword search within categories
0.7.2.0 - June 21, 2010
- Added ability to create playlists of videos,
and launch player with playlist.
- Requires a player associated with .m3u files
- Available through context menu on Results page.
- Click and hold on thumbnail to see context menu.
- Added some additional error checking to track down YouTube
exceptions for some users.
- Added YouJizz
0.7.1.0 - June 19, 2010
- Added Save As... dialog box back for downloads.
- Fixed Pornhub categories so they now return the correct results.
- Added more Pornhub categories (still not complete).
- Changed to delay-load thumbnails during search for quicker results.
0.7.0.0 - June 19, 2010
- Fixed YouTube links to allow them to work in TCPMP.
0.6.1.0 - June 18, 2010
- Added Pornhub.
0.6.0.0 - June 18, 2010
- Added ability to play video while it's being downloaded.
- Added ability to cancel downloads.
- Added Xvideos (VP6 format only)
0.5.0.0 - June 14, 2010
- Corrected YouTube formats for downloading.
- You can now select between all available formats for a video.
0.4.0.0 - June 12, 2010
- Added paging for YouTube and Tube8 results
- Added categories for YouTube
- Added ability to sort results
0.3.0.0 - June 8, 2010
- New Tabbed UI
- Added YouTube support
- Added RedTube support
- Added categories for Tube8
- Added built-in download capability
- Keyword search within categories
0.2.0.0 - May 28, 2010
- Fix code to find video player associated with FLV or 3GP
- You must have a player associated with .flv and/or .3gp files
- Fix Save to use Internet Explorer
- QVGA fix
0.1.0.0 - May 27, 2010
- Initial Release
Notes:
- Coreplayer is able to stream both flv and 3gp videos smoothly
- TCPMP should be able to, but I have not had much luck with it. FLV seems to choke TCPMP, and 3GP doesn't seem to work at all on TCPMP.
- For streaming YouTube with TCPMP you may need to try several different formats to find one that will play well. Coreplayer should be able to stream most of the formats (other than HD formats).
If you find this app useful, please donate.
-- bik2000

cool beta - I hope that with this app can be supported more portals than only this one like tube8.
Search works,but "play" as also "save" doesn't work.
fot play it tries to open tcpmp instead of core player,and tcpmp can't handle it.
For "save" it opens opera9, and not my opera10.no flash there.
I didn't find anything to configure it to core player or opera10.
thanx for the 1st release
Micha

It installed and opened fine on my TP2. The search feature works, but the "play" and "save" options do not work as mentioned above. It tries to save using my Opera10 browser where I receive a "403 - Forbidden" page. It tries to play on TCPMP but "Could not open URL!" even when setup as suggested here:
forum.xda-developers.com/showpost.php?p=6014306&postcount=32
Hopefully this feedback will help you

future request add xhamster

Thanks for the feedback guys.
It sounds like I need to change the way it finds the installed video player. I already have an idea how I should have done that, so I will make that change.
It also sounds like I didn't account for people having default browsers other than IE, so I'll take care of that as well.
As far as adding additional sites, that is definitely in my plans. My first priority is to get it working properly with one site, and once that is done, I don't expect it will take too much to add additional sites.
I'll try and get an update out later tonight.
-bik2000

sounds very good .. because dont working on samsung omnia.. :-( searchin yes playing no but i have tcpmp , coreplayer installed
best regards

I'm always happy to see this sort of project WVD was one of a kind but it seems to have died out without leaving it's source behind.
I've not been able to use your app though... I get a "Cannot start process because a file name has not been provided" message... Don't have a clue about the cause...
As for suggestion go:
1- Add Youtube support... With WVD gone we either use GETYTV to download or YouTubePlay to view (I won't count the official app as it sucks, HTC app as I'm on a Samsung or CorePlayer as they lost all my consideration when they killed TCPMP to turn profit)...
2- Add catergory browsing to all websites.
3- Adapt/fix the resolution (currently it seems to expect for all devices to be VGA...). My device shows only 1 image per line (as oposed with your screenshot).
4- About the app structure I suggest the one thing I've always suggested when it comes to this sort of app: make it in such a way that one can add and maintain websites using external text based files (xml and the likes). Websites will constantly change and people will nag the dev ad nauseam for updates (reading the WVD thread it's easy to see this)... This way maybe other people can contribute.
PS: About TCPMP versions do try the one in my signature... It's basically a bundle of bimbam69 (link in my signature) with rmvb plugin. Make sure you delete TCPMP registry key before you use any new version.

frmariam said:
Add Youtube support... With WVD gone we either use GETYTV to download or YouTubePlay to view (I won't count the official app as it sucks, HTC app as I'm on a Samsung or CorePlayer as they lost all my consideration when they killed TCPMP to turn profit)...
About the app structure I suggest the one thing I've always suggested when it comes to this sort of app: make it in such a way that one can add and maintain websites using external text based files (xml and the likes).
Click to expand...
Click to collapse
A generic approach that can be maintained without code changes would be great. Unfortunately, most sites (other than YouTube) do not provide a consistent API or WebService to access the videos. So you are kind of at the mercy of the site layout. I will think about ways to make the app easy to update though.

frmariam said:
2- Add catergory browsing to all websites.
3- Adapt/fix the resolution (currently it seems to expect for all devices to be VGA...). My device shows only 1 image per line (as oposed with your screenshot).
Click to expand...
Click to collapse
2 - is in the plans.
3 - is also in the plans as soon as I figure out how to detect the resolution of the device. This is my first Windows Mobile App.

Works great on HD2 with Coreplayer 1.3.6. Good video quality. Thanks!

wardh said:
Works great on HD2 with Coreplayer 1.3.6. Good video quality. Thanks!
Click to expand...
Click to collapse
Wow, I'm glad it works for you. I was beginning to think I was the only one.

frmariam said:
I've not been able to use your app though... I get a "Cannot start process because a file name has not been provided" message... Don't have a clue about the cause...
Click to expand...
Click to collapse
This means it can't find Coreplayer or TCPMP on your device. Not that they aren't there, just that the app is looking in the wrong spot.

bik2000 said:
Wow, I'm glad it works for you. I was beginning to think I was the only one.
Click to expand...
Click to collapse
I installed it on phone memory (same with CP) if that matters...

bik2000 said:
2 - is in the plans.
3 - is also in the plans as soon as I figure out how to detect the resolution of the device. This is my first Windows Mobile App.
Click to expand...
Click to collapse
getscreenx() and getscreeny() are the commands, you find them at msdn.
but: for vga and wvga it's needed that you made your app Highres-aware, otherwise you would get the false results.it's described at msdn how you easy do this (only add a resource)
please consider that most people have opera9 and 10 at the same time.also tcpmp and core player.sometimes in main storage, sometimes on storage card - and all of this language dependent. therefore a choose by user is better than an automatic detection.
just ask, if need something.I think we all had/still have to find out the "specialties" of winmo
thanx for your hard work
Micha

Impressive first app
You've got a hell of a first project here
Indeed most web video sites don't like to publish the API... But if you're looking for some examples the GoTube scripts (javascript) and XMBC scripts (python) may be of assistance.
About the running error it may be indeed the failure in detecting the players. I have TCPMP but my system is not English (and my SD drive has a name with uncommon chars which means full unicode support is needed). An easy temporary solution would be adding an options page where one can browse for the player exe.

bik2000 said:
Wow, I'm glad it works for you. I was beginning to think I was the only one.
Click to expand...
Click to collapse
Works for me too, thanks..!
I've WinMo 6.1.

frmariam said:
You've got a hell of a first project here
Indeed most web video sites don't like to publish the API... But if you're looking for some examples the GoTube scripts (javascript) and XMBC scripts (python) may be of assistance.
About the running error it may be indeed the failure in detecting the players. I have TCPMP but my system is not English (and my SD drive has a name with uncommon chars which means full unicode support is needed). An easy temporary solution would be adding an options page where one can browse for the player exe.
Click to expand...
Click to collapse
Thanks for the comments!
The XBMC links are interesting. My approach isn't too far off.
Yes, a non-English system would be an issue for the way I implemented player detection. I'll definitely rework that part of the application.

Works as advertised on my TP2.

About the player detection
I remebered how WVD did it.... WVD doesn't quite detect the player... It writes an m3u file with the url and sends an open command. This way the link opens in whatever player is associated with m3u files.
PS:You can check code from WVD.exe using Reflector.

frmariam said:
I remebered how WVD did it.... WVD doesn't quite detect the player... It writes an m3u file with the url and sends an open command. This way the link opens in whatever player is associated with m3u files.
PS:You can check code from WVD.exe using Reflector.
Click to expand...
Click to collapse
Yes, I saw that's what WVD did. I am going to try to get the player path from the registry entries for 3GP and FLV associations. If that doesn't work out, I may try the m3u approach.
Thanks for the Reflector link. That may come in handy.
-- bik2000

Related

Updated!! Mplayer port for Windows Mobile!

Hi All,
This is the mplayer (famous linux media player ) port for Windows smartphone . I have tested this with Application unlocked SP5m ( WM6) . It should run on all WM5+ smartphones as well Pocket PCs .
Installation guide..
Unzip all the contents to memory card and run mplayer.exe , All files should be in same folder.
Advantage of mplayer
-- Full support of streaming
-- supports all real media formats including streaming.
-- Supports RV40, RV30, R20 , sipro , cook and atrac codecs.
-- Supports MP4 streaming over RTSP.
-- All flavors of Flash video are supported.
-- Uses coremp4 for MP4 decoding.
TODO:
-- Need to imporve GUI ( current version is just for preview)
-- WMA decoder is not supported ( Need to add windows DMO driver, any help will be great)
-- Need to fix some crashes .
Overclock your tornado to 240 MHz , this will give best result.
Download armv4 version of Mplayer this should run on all devices
Menneisyys' Mirror
Download armv5te version of Mplayer this should run on all omap850+ devices
Menneisyys' Mirror
Download iwmmxt version of Mplayer this should run on all devices which has iwmmxt optimization, not tested thought, pls share your results
Menneisyys' Mirror
I will post the device list with compatibility soon till then you have to hit and try different version on your device.
Regarding high CPU usage on streaming and missing live555 support , this is something I have to debug , will update you soon.
Finally , If you feel mplayer port is useful please donate , It will help me to make Mplayer more useful and powerful.
Click here to donate
Usage:
Use Open File to open any media file stored locally
Use Open Url to open a URL , if url is a playlist click Open As Playlist open.
Use Open Playlist to open a playlist stored locally.
Keys:
right arrow key-- forward
left arrow key --rewind
center key -- play / pause
volume up key / down key --vol up/down
* -- prev song in playlist
# -- next song in playlist
Reply with suggestions and comments , I will try to work on them.
Thanks
Amit Vijayvargiya
Brilliant!!!! Nice work, Amit!
Tell us if you are also planning a PPC port like axim x51v. Thanks
Hi amitv_17! Great work.
I am russian. When I try to open file with russian name, your plays said that can't find this file, and show me on screen abracadabra, not russian name me the file I try.
Your player don't understand russian font symbols.
Hi,
Absolutely amazing!
Are the codecs all written in software? Or do you use hardware acceleration?
I'm running it on both my Kaiser and Vox. I tried a few flash video files and a mpeg4 file. They all worked well. Unfortunately I got an error when streaming mpeg4 via rtsp. The errors are:
"Server returned 400: Bad request" and then "no stream found to handle url rtsp://192.168.1.26:7070"
With VLC player I can play this stream without problems. Any solution?
And before I forget, let me know your palpay address then I will send you a donation
Cheers
JockyW
PS: the link http://www.geocities.com/amitv_17/cemplayer doesn't work
Wowz! I'll frontpage this!
BTW, what makes the port Tornado-only? The entire WinMo coummity would certainly welcome the port!
jockyw2001 said:
I'm running it on both my Kaiser and Vox. I tried a few flash video files and a mpeg4 file. They all worked well.
Click to expand...
Click to collapse
Wowz, nice to know it's indeed compatible with other models.
BTW, can I relocate this thread to Dev & Hacking so that it gets MUCH bigger exposure?
BTW, can I relocate this thread to Dev & Hacking so that it gets MUCH bigger exposure (before I publish my article, that is)?
Menneisyys said:
BTW, can I relocate this thread to Dev & Hacking so that it gets MUCH bigger exposure (before I publish my article, that is)?
Click to expand...
Click to collapse
Great, it absolutely deserves exposure. This is a high potential!
what kind of rendering engine does this use? it seems to be pretty slow when playing rm on my Kaiser
jockyw2001 said:
Hi,
Absolutely amazing!
Are the codecs all written in software? Or do you use hardware acceleration?
I'm running it on both my Kaiser and Vox. I tried a few flash video files and a mpeg4 file. They all worked well. Unfortunately I got an error when streaming mpeg4 via rtsp. The errors are:
"Server returned 400: Bad request" and then "no stream found to handle url rtsp://192.168.1.26:7070"
With VLC player I can play this stream without problems. Any solution?
And before I forget, let me know your palpay address then I will send you a donation
Cheers
JockyW
PS: the link http://www.geocities.com/amitv_17/cemplayer doesn't work
Click to expand...
Click to collapse
Hi JockyW
I am currently too busy. I will make the website up by next week. Does port 7070 is correct for your rtsp link , try with 80 as mplayer doesnt try port 80 by default.
follow this link to make donation:
https://www.paypal.com/cgi-bin/webs...ode=USD&lc=IN&bn=PP-DonationsBF&charset=UTF-8
Thanks
Amit
arthurkok2 said:
what kind of rendering engine does this use? it seems to be pretty slow when playing rm on my Kaiser
Click to expand...
Click to collapse
It uses realplayer binary codecs optimized for ARM , for some rm files you need to overclock your Phone.
Amit
Lemark said:
Tell us if you are also planning a PPC port like axim x51v. Thanks
Click to expand...
Click to collapse
Yes I will try to port this on PPC too. Can you run this on your Axim and give me the error details.
Thanks
Amit
Lovetz said:
Hi amitv_17! Great work.
I am russian. When I try to open file with russian name, your plays said that can't find this file, and show me on screen abracadabra, not russian name me the file I try.
Your player don't understand russian font symbols.
Click to expand...
Click to collapse
Yes the unicode support is missing currently ,so you have to rename the files to or wait for some time , I will make unicode available.
Amit
amitv_17 said:
It uses realplayer binary codecs optimized for ARM , for some rm files you need to overclock your Phone.
Amit
Click to expand...
Click to collapse
Great, you support RealOne? Do you also plan to support HTTP to stream RealOne, as opposed to RTSP? RealOne's official player doesn't support HTTP tunneling, only RTSP, which means it's useless on many NAT networks.
(Sorry for not trying it myself - I'm very busy with two other articles right now.)
amitv_17 said:
Hi JockyW
I am currently too busy. I will make the website up by next week. Does port 7070 is correct for your rtsp link , try with 80 as mplayer doesnt try port 80 by default.
follow this link to make donation:
https://www.paypal.com/cgi-bin/webs...ode=USD&lc=IN&bn=PP-DonationsBF&charset=UTF-8
Thanks
Amit
Click to expand...
Click to collapse
The address and port I use is 100% correct (rtsp://192.168.1.26:7070).
It works in VLC and Quicktime. I'm streaming mpeg4 video via RTSP.
Just made a donation
Any ideas about releasing source code ??
mplayer !! yesss....
I'm using it on Linux, I'm using it on Windows... now is the last step taken
ugh...
It should run on all windows smartphones as well Pocket PCs with QVGA display (240x320)
Click to expand...
Click to collapse
well, it can't initialize a video for me... Himalaya. There's a lack of a whole central part (video area) - I can see an underlying application. The voice is working, though...
well... clicking 'tools" on softbar quits program.
"open menu" is working, player just works, but cannot do anything else..
i am using wm06 wizard.
playback is much slower, than with tcpmp, imo.

[APP][WM6] alpha v2 - Tube8 viewer --- uses XBMC plugins with PythonCE!

New version!! See this post! (post 33)
So I'm planning on making a full video viewer/downloader for multiple sites and I decided to start with a porn site, tube8. I'm still learning a lot of .NET, and it's even harder when you're stuck with using compact framework 3.5. So go easy on me....
In any case, I've got a barebones app that will list all the videos on the front page of Tube8 along with a thumbnail when you hit "GO" at the bottom. (if you hit it twice, it might crash)
If you DOUBLE-tap the clip you want to download, the go button at the bottom will change to FLV. Hit that and the screen will freeze while it downloads the file to the ROOT of your STORAGE CARD. A popup will tell you it's done when it's done.
Sorry, this is bare-bones. I just want to confirm this works on all networks. I've only tried it over WiFi. I'll implement more menus, a streaming option, etc as time permits.
Also, I know that you can play FLV videos... my current device is giving me trouble with the version of TCPMP i have so if anyone can tell me if the FLV videos do play, that would be great. I know they play when copied to a desktop.
There's no CAB yet (still learning), but you can extract the zip and just run the exe file anywhere on your device.
FYI, the final program will be called 2Kinetic - Mobile Video Viewer.
(fun with physics)

[APP][WM6] alpha v2 - Tube8 viewer --- uses XBMC plugins with PythonCE!

New version!! See this post! (post 33)
So I'm planning on making a full video viewer/downloader for multiple sites and I decided to start with a porn site, tube8. I'm still learning a lot of .NET, and it's even harder when you're stuck with using compact framework 3.5. So go easy on me....
In any case, I've got a barebones app that will list all the videos on the front page of Tube8 along with a thumbnail when you hit "GO" at the bottom. (if you hit it twice, it might crash)
If you DOUBLE-tap the clip you want to download, the go button at the bottom will change to FLV. Hit that and the screen will freeze while it downloads the file to the ROOT of your STORAGE CARD. A popup will tell you it's done when it's done.
Sorry, this is bare-bones. I just want to confirm this works on all networks. I've only tried it over WiFi. I'll implement more menus, a streaming option, etc as time permits.
Also, I know that you can play FLV videos... my current device is giving me trouble with the version of TCPMP i have so if anyone can tell me if the FLV videos do play, that would be great. I know they play when copied to a desktop.
There's no CAB yet (still learning), but you can extract the zip and just run the exe file anywhere on your device.
FYI, the final program will be called 2Kinetic - Mobile Video Viewer.
(fun with physics)

[App][Dec 8 2010][V5] Avian Play - A new kind of music player for WM

Overview
Avian Play is a new kind of music player for Windows Mobile. Avian Play provides an intuitive, unique, and user customizable user interface, inspired by modern mobile user interface designs and tweaked for a powerful music player, and an audio engine based on the most accurate and blazingly fast portable audio engine available on any platform - the MAD MP3 decoder. Avian Play gives you three completely separate playback control surfaces, depending on the type of file you are playing. You get a separate control surface for music, podcasts, and internet radio. The controls you need for each of those separate audio tasks is not the same, so why should the same buttons be visible, wasting screen real estate? Another unique feature not found on any portable media player I know of is how Avian Play treats online radio stations. A playlist for a single stream is treated as a single unit, remembering the backup servers to try if the server you are listening to goes down. This information is cached and refreshed periodically automatically, so you have to update your stream lists less frequently. To top it all off, an included plugin for Avian Play supports the free SHOUTcast (TM) online radio service, and has an open Library plugin API so that other online services (and anything else you might need in the library) can be added easily. The Avian Play library is one of the other shining features of Avian Play. It is a robust SQL CE database core, with user customizable queries. When you are in any list of query results, you can immediately filter the list by simply typing something in your SIP or physical keyboard. No lag instant search!
If you like a graphically robust user interface, such as that which is used on iPhone, Zune, any many other players, Avian Play may not be for you. The design goals of Avian Play is maximum power and capability, with a robust library, customizable queries, and many other deep features yet to come. Interfaces such as sliding/flipping album covers is probably not going to ever be included.
Avian Play has a lot of features, and I know I'm forgetting a lot. If somebody wants to help me document this app, I would be grateful. I'm terrible at documentation. Maybe a series of tutorial YouTubes? :-D
Tip Jar
Like this app? Want more like it or quicker updates? Tip a few bucks (or Euros or Pounds or whatever) or two to help the author out! Click here to make a safe donation via PayPal.
Development
Development is hosted at CodePlex. You can download the source code and more. http://avianplay.codeplex.com/
Licensing
Avian Play is licensed under GPL v2. However, Avian Play uses many different libraries which may have different licenses. See the included ReadMe.txt file for more information.
Features
- Intuitive, finger-friendly user interface, with seperate control surfaces for each audio file type (music, podcasts, internet radio) with multiple layout scenes per surface
- Advanced SQL library of music files on your device with customizable queries
- Tag reading/parsing and tag derived information from paths (\Folder\Artist\Album\Track.mp3)
- MAD audio codecs
- Large fonts and titling and large buttons for "car friendliness"
- Playlist editor
- Streams can contain multiple alternate URLs in a single entry
- Immediate list filtering/searching
- Customizable skins and languages
- It's FAST
- Much more!
File Support
Audio: MP3, OGG, Flac, WMA, WAV
Playlist: M3U, PLS, AVPL (this is custom for Avian Play, see posts below)
Future
This project was started a year ago before the announcement of Windows Phone 7 and I'm glad I have seen it through to completion. Although Windows Mobile is a platform on the brink of death, I consider this my magnum opus for Windows Mobile and a fitting tribute to the capabilities of the underrated OS. I will continue to develop on this app as long as I have a Windows Mobile phone... Probably another year or so. I'm waiting for either WP7 to open up, or maybe making the jump to Android. Maybe I'll port it to both if it's popular. Avian Play was designed in a highly modular fashion. I did this intentionally back when everybody thought WP7 would still be based on the same core as WP6, so I could replace the UI components or audio engine easily. If anybody is interested in working an Android port right now, please PM me and let's talk.
Update: I've started porting Avian Play to Android. It's going to be a long process, as Avian Play is VB.Net on Compact Framework and Android uses a custom implementation of Java (it's not a one-to-one conversion; although translating VB.Net to C# first is speeding things up). After surveying the mobile landscape for the past few months, I'm just not all that excited about WP7, whereas Android is very "open" and flexible and the latest handsets make me go "ooooh" so I think that's where I will be heading. I'll reserve my final judgement for February when the "big update" for WP7 comes out that will supposedly relax a lot of the restrictions and open the platform up more.
Album Art
I know somebody is going to ask. How do I get to see Album Art?! Well, in this first release, album art is only viewable as thumbnails in the library. In the future, a new plugin architecture for the playback label/panel will provide customizable playback information, such as album art.
Gapless Playback?
Unfortunately, not yet... I think it should be possible, but I don't know C++ well enough to hack the MAD code. :-( Any volunteers???
Requirements
- Windows Phone (Windows Mobile) 6.0 or newer
- .Net Compact Framework 3.5
- SQL CE 3.5 (this is included in the cab installer)
- ALL resolutions supported! For non-192 DPI devices (aka, non-VGA), skin bitmaps are automatically scaled to resolution
Installation
The compact framework and SQL CE are required for Avian Play. If you do not have SQL CE installed, the installer will install it for you. However, if you have an older version of SQL CE (such as 2.0), the installer may not install SQL CE 3.5. So if Avian Play doesn't work after installation, this is probably the issue. If this happens, download and install the SQL CE 3.5 redistributable attached to this message. In the future, I hope to have a more intelligent installer that will detect older versions.
After installing Avian Play and running it for the first time, please allow 10-15 minutes for all supported audio files to be discovered and entered into the Library. From then on, Avian Play will automatically detect changes in the library contents until you close Avian Play. Each subsequent time you run Avian Play, it will scan for new files again, but it will be much quicker because it is only looking for changes.
Releases
V5: Here
V4: Here
V3: Here
V2: Here
V1: Initial release
New releases will come in small iterative steps, rather than major versions with bugfix sub-releases. Don't feel like you have to update at every version if this release schedule is too fast for you.
(scroll down to third post for more screenshots)
Localization
Spanish: http://forum.xda-developers.com/showpost.php?p=8917098&postcount=53
Avian Play is ready to be localized to your native language! I need translators though. In the "Languages" folder under the application folder is where each language will be stored. Avian Play is structured such that all files in the language folder will be loaded for that language. This allows plugins to put their own language files in those folders, without interfering with Avian Play. All language strings are loaded into a single dictionary. To avoid collisions, plugin developers should prefix all their language strings (see shoutcast.ini for example). If a language string is not found in your language (maybe a new plugin or new features have new strings that are not yet translated) it will always default back to the English translation. So the "English" folder is the default language.
Skinning
Avian Play was designed so that the user can customize the layout of the application. Eventually, Avian Play will be fully widgetized (although maybe not on the WM platform). For the time being, the title information is on top, the control surface or list is in the middle, and the menus and tabs are at the bottom. Skin designers can, however, give Avian Play a brand new look by developing new images and editing a skin.ini file. To make a new skin, start in the Skins folder, and copy the contents of Default. Then edit the images and edit the colors in skin.ini to suit your taste. Please upload the results. Users can then extract the skin into your own custom named folder and select the skin from within Avian Play. Get creative! My skin isn't that hot. ;-)
AVPL
I know nobody really wants yet another playlist format, but I had to develop one because no current playlist format supports multiple URL sources for a single stream, despite that being extremely common. To support all of Avian Play's playlist functionality, you should use AVPL formatted files. You can create AVPL files from within the internal playlist editor, or by hand, as it is just a simple INI file. In the future, the AVPL will also support direct queries on the database to populate the list, but this is not supported yet. The intention is for this to be an open format, and I will post the schema later on so it can be used in other applications.
Database Schema
FileLibrary:
Code:
Column Name Type Length Nullable Unique Description
Key int No Yes Identity Column - Primary Key
AddedDate datetime No No Date/Time the file was added to the DB
Album nvarchar 100 No No Album Name
AlbumArt image No No Album Art (scaled to approx 480x480)
AlbumArtist nvarchar 100 Yes No Album Artist Name (for example, a DJ who made the compilation)
AlbumArtThumbnail image Yes No Thumbnail of Album Art (scaled to approx 64x64)
Artist nvarchar 100 No No Artist Name (artist who performed this track)
Bitrate int No No Bitrate of media file ** Currently unused **
Comments nvarchar 200 No No Extra comments in media file
Copyright nvarchar 100 No No Copyright string
FileModifyDate datetime No No Date/Time the file was last modified
FilePath nvarchar 260 No Yes Full path to media file
FileSize int No No Length of media file in bytes
Format nvarchar 25 No No Format of media file (MP3, OGG, etc.)
Genre nvarchar 50 No No Genre of media file
HasAlbumArt bit No No Does this file have album art included?
IsFavorite bit No No Is this file "favorited" by the user?
IsPodcast bit No No Is this file considered a podcast?
LastFoundDate datetime No No Date/Time the file was last found in the file system
LastPlayedDate datetime No No Date/Time the file was last played
LastPlayPosition int No No If position is tracked of the file, the last position (byte) where the file was paused
LengthSeconds int No No Length of file in seconds ** Currently unused **
MD5Hash varbinary 128 Yes No MD5 hash of the file, if MD5 hashes are being tracked
NotFound bit No No Was the file not found when the last library scan ocurred?
Rating tinyint No No User rating of the file
SkipForMetaPlaylist bit No No Should the file be skipped for embedded queries in AVPL playlists ** Currently unused **
Title nvarchar 100 No No Title of the media file (song name)
TrackNumber int No No The track number, with respect to album track order
Year int No No The year the track was released
PlaylistLibrary:
Code:
Column Name Type Length Nullable Unique Description
Key int No Yes Identity Column - Primary Key
ContainsFiles bit No No Does the playlist contain media files?
ContainsStreams bit No No Does the playlist contain streams?
FileModifyDate datetime No No Date/Time the file was last modified
FilePath nvarchar 260 No Yes Full path to playlist file
Format nvarchar 25 No No Format of playlist file (M3U, AVPL, etc.)
IsFavorite bit No No Is this file "favorited" by the user?
LastFoundDate datetime No No Date/Time the file was last found in the file system
MD5Hash binary 128 No No MD5 hash of the file, if MD5 hashes are being tracked
NotFound bit No No Was the file not found when the last library scan ocurred?
Title nvarchar 50 No No Title of the playlist file (derived from filename, but AVPL may support)
Architecture
Some people might be interested in the architecture of Avian Play. So I will describe my approach here. Avian Play consists of two processes: AvianPlay.exe and APEngine.exe. AvianPlay.exe is a managed .Net Framework app written in VB.Net. It controls the bulk of your Avian Play experience. Everything from the control surface, library, podcast management, etc., is handled here. AvianPlay.exe spawns a second process, APEngine.exe which is the audio engine. APEngine is a wrapper for the MAD MP3 audio engine. This is the same engine used in MortPlayer, GSPlayer, and many others. It is a super high quality playback engine ported to many platforms. I chose it due to how easy it is to work with and the quality of playback.
Why two processes? I tried to P/Invoke MAD from a DLL, but due to memory management issues that led to freeze-ups, I realized I needed a larger barrier between the managed and unmanaged code. It took me a while, but I finally realized that I could avoid memory management issues by using two processes and using the registry for string-based IPC. The registry is very high performance on Windows Mobile, due to it being used for state notification via SHNAPI. So, by settings up registry callbacks on both processes, the application and audio engine are able to communicate successfully, with no memory management or other issues. The biggest disadvantage to this approach is that WM has a limit of 32 processes, and Avian Play will use two. I'm sorry, but there was no way around this! Attached to this thread is a Visio I made to map out how the application is structured.
File Feature Matrix
Code:
Audio File = The type of media file, such as MP3 and OGG.
Embedded Tags = Also known as "ID3" tags from the MP3 tag definition. This contains information like Artist, Album, Title, Track Number, etc.
Playback Attributes = This is information usually only known when open for playback, such as track length (in time).
Audio File Embedded Tags Playback Attributes
MP3 Yes No
Ogg Yes Coming Soon
Flac Yes Coming Soon
WMA Yes Coming Soon
WAV No No
Playlist File = The type of playlist file, such as M3U or AVPL
Files = Locations of files
URLs = URLs to internet media
Multiple URLs = URLs to internet media linked together as a single online radio station
Wildcards = Locations that point to folders or multiple files in one line
Recursive = Playlists that point to other playlists
Queries = Queries against the Avian Play database
Playlist File Files URLs Multiple URLs Wildcards Recursive Queries
AVPL Yes Yes Yes No No Coming Soon
M3U Yes Yes No No No No
PLS Yes Yes No No No No
Configuration
Avian Play's configuration is completely stored in INI files under the "INI" folder under the installation folder. In the future, you will be able to configure nearly everything from within the application, but these early versions are missing some configuration capabilities without manual editing.
Settings.INI
This is the main configuration file. Most of these settings are configurable from within Avian Play, but there are a few that are not. First, you can't edit the Avian Play database path. This is intentional because it's a bit advanced to move that around. But if you want to move the database file, you can do so and then edit the DatabasePath option under General. Second, the TagsFromPathRegEx option describes the regular expression used to derive tag information from the path. This is RegEx Pattern for Tags from Path in the application. Although you can edit it from within AvianPlay, it probably isn't optimal, since you might want to tweak the pattern from your PC where you can use an editor with RegEx capabilities.
Controls.INI
This file describes the control surface layout for the three control surfaces (Music, Podcasts, and Radio). It's a bit cryptic because it's designed to be configured and ready by the app, but the control surface editor is not yet ready. So if you want to change the control surfaces, you have to edit this file for now. The file starts under the [Main] section. Here there are the three control surfaces (0=music, 1=podcast, 2=radio). The C#L (Control Surface Length) tells Avian Play how much scenes are in each control surface. Minimum is 1. Then there are various sections, in the format of CXSY, where X=surface and Y=scene. So, C0S1 is the music surface and second scene (count starts at 0). Under that, you will see "SL" (Scene Length) which tells Avian Play how many rows the scene has (starting at bottom, going up). There is also R#L (Row Length) which tells Avian Play how many controls per row (1-4). Then you have RXBY, where X=row number (from bottom) and Y=Button (from left). Note that a button is any type fo control in Avian Play parlance, including track slider. The list of controls can be found at the bottom of this post. This is just the initial list and will grow as new features are added.
Events.INI
Avian Play uses events to allow you to execute commands based on occurances. The events currently supported are: OnApplicationStart, OnApplicationEnd, OnPhoneInUseStart, OnPhoneInUseEnd, and then keyboard/SIP events, which are Key_XX, where "XX" is the hex code of the key being pressed. ActiveOnList is a boolean that determines whether the action happens when a list (library, now playing, etc.) is active. Basically, some commands you don't want to work when the list is active. An example is that Avian Play allows lists to be filtered simply by typing. But if you remap "K" to play/stop, you can never use "K" to filter a list. So you would set ActiveOnList to false, in that case. AllowRepeat indicates whether a keypress can be repeated by holding it down. Action# are the steps of the script. The script itself is a super simple crappy thing I made up on the spot. If somebody knows of a script language I can easily include to replace this, that would be awesome. It has to be able to be plugged in easily and should be managed code.
Library.INI
This file defines the Avian Play Library's query results. Execution starts at the MAIN section, then jumps to the next sections based on user input. Most of the options describe the query used to retrieve data from the database. But there are other ways to populate a library list. For example, by using an external plugin. If you want to develop an external plugin, see the MemorizedSong plugin source code. I can't reveal the code for the ShoutCast plugin due to licensing restrictions with ShoutCast. You can also create a section that populates the list directly from a AVPL playlist file.
Podcasts.INI
Avian Play can manage podcast subscriptions and this is where you define your subscriptions. Again, this was designed to be edited by the application, so it's not exactly friendly, but it works well in my tests. Under Main section you set the next index to use to distinguish the subscriptions in the database. Under each SubscriptionX section, you use "Index" to differentiate each entry. Note that the title of the section does NOT differentiate the subscriptions. This is intentional. The rest of the sections are described in the file itself.
RegEx.INI
Online streams present information to the user, such as artist and title, in a single string. Avian Play allows you to use regular expressions to derive this pseudo-tag information to format it on the display easier. Many online radio stations seem to like to include superflous garbage surrounding the title information you care about. With RegEx, it's easy to exclude this crap! A few stations I listen to are included in the default file. Each entry has a "Station" tag which is the actual title of the station (partial or full -- use "ExactMatch" to set this). If multiple matches occur, use Priority to determine which one has precedence (higher number overrides lower number). Then the "RegEx" line is the actual regular expression used to derive title information. Named captures <A> represents Artist and <T> represents Title. The "Default" section is just what it sounds like: the default regular expression used to parse the stations. It follows the format "Artist - Title" which seems to be most common.
Schema.INI
This is used by the settings editor to know the layout of the Settings.INI file. DO NOT EDIT THIS.
State.INI
This file is overwritten every time you exit Avian Play. It stores the last track and some other UI information. DO NOT EDIT THIS.
Control Codes
These are the control codes used in the Controls.INI and Events.INI. Each code corresponds to a logical control (play, pause, stop, next, etc.). Some codes have an argument, which is another integer. Some codes also represent "multi" buttons, where the button may change based on the playback state; An example would be the StartPauseStop button which changes what it does based on whether playback has started or not.
Code:
NONE = 0 ' Do nothing
Stop = 1
Play = 2
Pause = 3
PreviousRewind = 5
NextForward = 6
SkipBack = 7 ' Argument, number of seconds
SkipAhead = 8 ' Argument, number of seconds
MemorizeSong = 9
OpenAudioFile = 10
OpenPlaylistFile = 11
JumpToEntry = 12 ' Argument: which playlist entry in the current list? 1..n
OpenURL = 13
VolToggle = 16 ' Argument, number of volume 'segments' (plus 1); Positive value increments; Negative value decrements. Example: 4 cycles through 0%, 25%, 50%, 75%, 100%, in that order
Close = 29 ' Close the currently open file or stream
ListUp = 201 ' Move up in the current list
ListDown = 202 ' Move Down in the current list
ListSelect = 203 ' Select the item on the list
ScenePrevious = 207 ' Go to previous scene in the collection
SceneNext = 208 ' Go to next scene in the collection
StopPlayPause = 401 ' Depending on playback state, stop, play, or pause
SelectStopPlayPause = 402 ' If in a list, select the list item, otherwise same as StopPlayPause
TrackPositionSlider = 601 ' The slider you can drag to jump around a loaded item
Tips
- Quickly double tap the song title area to toggle between the large multiline and small single line display modes.
- Press and hold some buttons for additional functionality: hold the volume toggle button to show the full screen volume bar, hold the PlayPauseStop button to stop.
- Don't want or need all three control surfaces (music, podcast, and internet radio)? Since V3, you can disable ones you don't want under Settings->Display
Frequently Asked Questions
None yet.
Many Thanks thx1200. Tried it on hd2, miri Elegancia v5.0 Final WWE
on both internal memory and storage card, it says SQL CE 3.5 may not be installed. please install ....
but in the requirements you've mentioned the sql is included in the cab installer!
m.reza said:
... it says SQL CE 3.5 may not be installed. please install ....
Click to expand...
Click to collapse
same problem
This is a really nice app. I had the sqlce error as well. The problem is that the cab isn't installing the secondary sqlce cab, but it is being deleted from the Avian folder. I unpacked the cab and installed the sqlce cab on my own, and now the app loads. I don't know how the hell to use it yet, lol, but it's really good looking and has cool features. I've uploaded the sqlce cab so anyone with the same problem can load it on their own.
Farmer Ted said:
This is a really nice app. I had the sqlce error as well. The problem is that the cab isn't installing the secondary sqlce cab, but it is being deleted from the Avian folder. I unpacked the cab and installed the sqlce cab on my own, and now the app loads. I don't know how the hell to use it yet, lol, but it's really good looking and has cool features. I've uploaded the sqlce cab so anyone with the same problem can load it on their own.
Click to expand...
Click to collapse
I think the problem is that your ROMs have an older SQL CE installed, but the installer isn't smart enough to detect this. I'll try to fix for a future version, but until then, I'm going to move your SQL CE cab to the top post.
Farmer Ted said:
I've uploaded the sqlce cab so anyone with the same problem can load it on their own.
Click to expand...
Click to collapse
Thanks! Installed this cab and now it's working fine.
Great app.
Farmer Ted said:
This is a really nice app. I had the sqlce error as well. The problem is that the cab isn't installing the secondary sqlce cab, but it is being deleted from the Avian folder. I unpacked the cab and installed the sqlce cab on my own, and now the app loads. I don't know how the hell to use it yet, lol, but it's really good looking and has cool features. I've uploaded the sqlce cab so anyone with the same problem can load it on their own.
Click to expand...
Click to collapse
i can also confirm, after installing the cab the app loads.
cu,
nosedive
When I push the END/POWER button in order to save power then the player stops. Any way to avoid this?
Any way to (re)arrange the buttons (music, podcasts, internet radio, library, playlist editor, settings), or even disable some of them? E.g. I would like to have "music" and "library" next to one another.
can't launch.
When I tried to install, I can't because intallation was interrupt by some cause.So I install it with SKtoos and when launch program I have message that contain next "An error has occurred which caused Avian Play to crush..... Exception: system.componentmodel.win32exception"
Have i710 WM5
eversp01 said:
When I push the END/POWER button in order to save power then the player stops. Any way to avoid this?
Click to expand...
Click to collapse
It must be sending a keystroke that AP doesn't like. In events.ini, try commenting out the entire "[Key_D]" section and see if that helps. that's the enter key assigned to PlayPauseStop.
eversp01 said:
Any way to (re)arrange the buttons (music, podcasts, internet radio, library, playlist editor, settings), or even disable some of them? E.g. I would like to have "music" and "library" next to one another.
Click to expand...
Click to collapse
The bottom "sense" style buttons will be editable and rearrangable as a future feature, it is not currently possible. You can edit the control buttons in Controls.INI -- see the third post.
lPatriciaNl said:
When I tried to install, I can't because intallation was interrupt by some cause.So I install it with SKtoos and when launch program I have message that contain next "An error has occurred which caused Avian Play to crush..... Exception: system.componentmodel.win32exception"
Have i710 WM5
Click to expand...
Click to collapse
It may not work as I noticed you said you have WM5. This app was designed specifically for WM6 and some features may not work with WM5.
However, it might still be possible for it to work in a limited fashion. But if the install did not complete, then it definitely won't work. Make sure that .Net CF 3.5 and SQL CE 3.5 are both installed and try launching again. If it doesn't work after that, it might not work for your WM5 device.
last.fm support
are you planning support for last.fm scrobbling so every song played in avianplay will be scrobbled?
how can i add whole folder to the playlist?? i cant see that options
myracleboi said:
are you planning support for last.fm scrobbling so every song played in avianplay will be scrobbled?
Click to expand...
Click to collapse
No current plans, but that sounds like an interesting feature request. I don't use last.fm... can you point me towards some information on how to implement this? Like a last.fm API or something?
fuxmen said:
how can i add whole folder to the playlist?? i cant see that options
Click to expand...
Click to collapse
That's not currently an option, but it's a good feature request.
thx1200 said:
That's not currently an option, but it's a good feature request.
Click to expand...
Click to collapse
It would be very useful because adding one song at a time takes very long time
entering urls
I keep getting url is invalid.... when I try to enter a web site... what do I need to do... to set up the streaming audio

[APP] [20/04/2011] foobar2000 remote control over Web Service

After connecting my Hi-Fi system to my home server using an USB DA Converter (HRT Music Streamer II+) I needed a remote control solution for the foobar2000 music player that run on Windows Mobile (for my home automation system I use a bunch of HTC HD2 as remote terminals). Unfortunately, I did not found anything that I liked.
As I had some spare time I decided to develop a solution myself building a web service server based on the foo_comserver2 foobar plugin and a Windows Mobile client that access the server over Wi-Fi.
They offer:
- basic playback control (play, stop, pause, next, previous)
- playlists listing and selecting
- selected playlist track listing
- media library access as a author/album/track tree
- media library search
- filling a playlist with albums or tracks from the media library
The client supports touch scrolling and (optionally) rotation.
As I developed them and they works at my home I post them here. Note that they are not commercial grade software (no installer, no configuration utility, the client is fairly dependent on HTC HD2 hardware) but
- the HTC HD2 is fairly common and the client might run on similar WVGA devices
- the server is more general and many tools can develop applications that interface to a web service
- full source code is included
Server requirements
- .NET framework V3.5
- foobar2000 V1.1.5 (or later) with these plugins
- foo_comserver2 V0.7
- foo_runcmd V1.1
- foo_playlist_attributes V0.3.0
Client requirements
- .NET compact framework 3.5
- HTC HD2 (or something very similar)
- optionally (required for rotation support) TouchLockPro 2.12.8 with GSensor
enabled (http://forum.xda-developers.com/showthread.php?t=444215).
READ the ReadMe.txt inside the archive and Good luck!
foobarWCF.V1.5.4.zip (RapidShare)
USUAL LEGAL DISCLAIMER
Use this software at your own risk! NO WARRANTY! Although running these applications does not seem to produce any damage on my computers and phones, I take no responsibility for any kind of damage or major or minor inconvenience caused to devices or data or person or whatever else due to these applications and their usage.
The source code is offered free for any use, again at your own risk, but bashing the developer (to my excuse I jotted it down in a pair of days).
After some work to set things up it works very well on my HD2.
Thank you very much!
Its great ! Now I have ultimate remote for foobar! even if I'm on second floor

Categories

Resources