Posts Tagged ‘Silverlight’

APODViewer7 2.0 Released

21 Mar

Whoa daddy I worked a lot on this update.  I’ve been working on this since mid-February on my free time.  This is a huge leap in features, performance, and stability then any prior release.  This was a major enough update I felt it deserved to be the 2.0 version.  The name was also changed to ‘APODViewer7’ to distinguish it from similar applications on other marketplaces.

The biggest changes was the addition of viewing the full APOD archive.  You can go back, month by month or to a specific month, to June 1995 when APOD posted its first image.  That’s over 5,400 images!   Searching was also added to do complete APOD text search’s of the title and description. Here are some screenshots of the main page from the pro version:

SplashScreenImagePro_Crescent 123

The new splash page is show in the first image. Note in the second image the removed alternating colors compared to previous versions.  It was failing to alternate in some cases in the previous version.  More importantly, this looks more ‘Metro’ and saves power for the AMOLED users.  The date is also shown with the title.  The third shot is the same page but with the settings set to ‘Thumbnails only’.  I personally like this mode, makes picking more interesting images quicker.  The forth shot shows the search pivot.  Viewing the image hasn’t changed much, other then some application bar changes noted below.

Complete changes are as follows:

  • Renamed app from ‘APOD Viewer’ to ‘APODViewer7’ to distinguish it better from other APOD apps on other platforms out there.
  • Removed all feature restrictions from the free/trial modes, other than the Ads.
  • Full archive viewing. Browsing done month by month, either incrementing/decrementing or selecting a specific month/year. Limited to June 1995 to present month.
  • Dropped the usage of the RSS feed. The app will now automatically determine date changes and create the new URL. APOD uses a very obvious pattern on URL links so this works great.
  • Added Search pivot. This allows search of all the titles and description text. It only returns a max of 200 items. It’s a bit sluggish when a lot of returns come back. I plan to make this perform better in the next update.
  • The ‘Random Image Hourly’ Live Tile pulls from separate images on both the free and Pro version of the app.  This way you should never see the same image when using the same Live Tile across both apps.
  • When viewing the detailed images and pressing the Next or Previous buttons it will now go through the appropriate list, be it the currently viewed month, search results, or favorites.  Previously it would only shift through the latest images.
  • Cached all prior months’ data into the app from Feb 2011 to June 1995, except for the thumbnail image data. When viewing previous months all that’s needed to download is the image itself, all other image data is loaded locally.
  • Background downloading of images when viewing your initial image. You should see a progress bar on the first image, but the next selection loads instantly if given enough time (usually 1 or 2 seconds). It downloads the 2 next dates immediately before and after it. This way when hitting the Next/Back button, the image instantly loads.
  • Added Thumbnail only viewing from the main page using a Wrap Panel.
  • Main page now handles landscape viewing. The Thumbnails Wrap Panel views 5 thumbnails from left to right in landscape, 4 in portrait.
  • Removed alternating background colors in list box’s. The reason for this is the way I add new images to the list the alternating colors occasionally do not alternate correctly. Added bonus, AMOLED screens show more black, saving power.
  • Removed the ‘buy astronomy products’ link.  The experiment is over. For the curious, I didn’t sell one item.  It was pretty hard to view and navigate from that web page, it was not setup for mobile viewing.
  • Removed the ‘update’ nag prompt from the free version. The Paid version will still bug you, but only once every month.
  • Added GIF viewing including support for animated GIFs.  You cannot save GIF images to the Picture Hub.  They also do not preload into the cache, they are downloaded every time you go to view it.
  • Added a Waiting animation in the thumbnail area if it’s currently being downloaded.
  • Scaled and fit the thumbnails into 100×100 images.
  • Changed ‘Reload Image’ menu item to two items, ‘Reload Image (std res)’ and ‘Reload Image (high res). This will force the page download to show the specific image resolution regardless of what was loaded before. Makes the ‘Show high res’ in the settings less useful, but I left it there in case some people insist on it especially if they auto save the images on view.
  • Setting to load either the most current month or the last month viewed on application startup.
  • Haptic feedback on all buttons. This can be disabled in the settings.
  • Changed some of the mirror sites. Some of them appeared to not have been updated in quite some time. The only mirrors that made the cut are Russia, United Kingdom, and Italy. I would prefer to have more, but the other sites either are not updating or reformat how the images are stored in way that’s unique.
  • Separate Random Image live tile images for the free and paid/trial version. This way selecting Random on both apps will not duplicate the image.
  • Removed picture hub limit, made obsolete from recent changes.
  • Better thumbnail image downloads and recovery. If using a mirror and it fails, it will reattempt back to the NASA server. If it fails and shows the default thumbnail, it will reattempt the thumbnail download again on the next time that month/year is reloaded.
  • Added a default video thumbnail image for days where a YouTube link is present.

WootTracker7 Released!

14 Oct

My first Windows Phone 7 application is now in new revamped Windows Phone marketplace.  It got approved on Wednesday night after submitting it Monday; not a bad turn around.  If you have the Zune Client software installed on your PC, you can directly see it with this link (Note, this link only works in IE and if you have the Zune PC software installed):

Here are some sample pictures of the application (click to zoom):


This is the full description of the application:

WootTracker7 is your complete tracker program to quickly view items currently being sold off of and its associated sites. Most importantly, WootTracker7 is a fully featured WootOff monitor. This program will monitor changes to the sites and notify the user immediately of item changes, items sold out, and items that are about to sell out with sounds and vibration. Optional under locked screen operation allows you to constantly monitor the woot sites on the go and be able to react to changes quickly to purchase your cherished Woots.


  • Shows details of each item currently being sold on,,,, and
  • Separate pages allow user to quickly scan and decide purchase the item off of the website by pressing the ‘I want one’ button.
  • Alerts on changes to items during WootOffs.
  • Plays all item audio podcasts and video WootCasts.
  • View and zoom pictures associated with the current item.
  • Optional feature to run under the locked screen to continue notifying the user on Woot site changes when the screen is off.
  • Optional screen lock disable to keep the application constantly running in the foreground.
  • If a site currently selling in a ‘Woot Off’ mode, the page will show a items left progress bar, Woot Lights, and updates will update every 15 seconds. This time is user definable.
  • Links on the menu bar to:
    • Scroll quickly to the top of the page.
    • Play the sites PodCast, if available.
    • Open the Blog or Discussion page in the web browser.
  • Updates and alerts shown when the pages either:
    • Change item
    • Sellout
    • Remaining items at 20%, 10%, 5%, and 1% (customizable)
  • Alerts will switch to the associated page when a change occurs.
  • User Customization includes:
    • Update frequency in minutes
    • Update frequency on WootOffs in seconds
    • Continue to run under locked screen
    • Prevent phone locking
    • Font size of description text
    • Disable alerts
    • Enable/Disable Sounds or Vibration on alerts


I am still working some changes and plan to submit an update this week.  I will be posting soon on what changed after I submit the update.

Please feel free to email with problems and suggestions on changes.  I plan to actively maintain this for quite some time and would appreciate any feedback, good or bad.

1 Comment

Posted in WP7


Windows Phone 7 Sound Effects Issue

08 Aug

I’m writing this for new people who are just starting Windows Phone 7 development.  This is something I’m sure all WP7 developers solve while developing their projects, but I thought I’d share my experiences on sound effects to save someone’s time when they run into this.

I’m starting a new application that had a need to create a sound effect on a button press.  Simply enough, right? I figured this would be very easy but this was my first attempt at developing a WP7 project.  First I added the MP3 to the project:


Then I referenced it using MediaElement into my Grid from the MainPage.xaml file like so:

  1. <MediaElement x:Name="MySoundFile" Source="soundeffect.mp3" AutoPlay="False"></MediaElement>

Then within the button click event method I added:

  1. MySoundFile.Position = TimeSpan.Zero;
  2. MySoundFile.Play();

This is apparently a standard way to play sounds within Silverlight.  This did not work in the emulator.   Even changing the Build action of the file to ‘Resource’ did not help.  After some Binging around I found out this is a known issue and someone suggested this workaround.  Within the App.xaml add the MediaElement to Application.Resources:

  1. <!–Application Resources–>
  2. <Application.Resources>
  3.           <MediaElement x:Key="AppSoundFile" Source="soundeffect.mp3" AutoPlay="false"></MediaElement>
  4. </Application.Resources>

Then create method within App.xaml.cs as:

  1. public void PlaySoundEffect()
  2. {
  3.     MediaElement myME;
  4.     myME = (MediaElement)this.Resources["AppSoundFile"];
  5.     myME.Position = TimeSpan.Zero;
  6.     myME.Play();
  7. }

Then call this method from your click event as:

  1. App currentApp = (App)Application.Current;
  2. currentApp.PlaySoundEffect();

This worked great in the emulator. I am not sure why, but it may be how the MediaElement is defined programmatically compared to being referenced from XAML when played.

However, a major problem became apparent after deploying directly to my LG WP7 preview device; it didn’t play at all.  Some more Binging and I found this logged bug.  Someone posted a workaround to use the XNA libraries to play the effect.  The problem with this is you have no control to stop it after the sound is executed and it cant be an MP3 file, but WAV works.  I converted the soundeffect.MP3 to soundeffect.WAV.  I then added Microsoft.Xna.Framework to my project references.  Within my MainPage.xaml.cs file I added:

  1. using Microsoft.Xna.Framework;
  2. using Microsoft.Xna.Framework.Audio;

Then I made a call to the effect within the click event as such:

  1. var stream = TitleContainer.OpenStream("soundeffect.wav");
  2. var effect = SoundEffect.FromStream(stream);
  3. FrameworkDispatcher.Update();
  4. effect.Play();

This worked great in both the emulator and device.  For something I thought would be extremely easy this seemed like a bit of a chore.  I’m presuming the direct MediaElement call will work on release, but I’m surprised at something as common as playing a sound file is not completely functional yet.  I’m not sure if this is the best way to do this within a WP7 application.  If anyone has a better way to handle sounds, please let me know.

Update – 8/21/2010

Turns out that having my hardware device physically connected to my computer AND the Zune player disables MediaElement.  Once you disconnect it from the Zune player, the object plays fine on real hardware.  So I just need to remember to yank the device off to test any MediaElement objects. 

In the case of the app the example above shows pieces of, I’m going to continue using the XNA calls.  The reason is it allows multiple calls into it to stack the sound multiple times.  MediaElement can only be called once and will not play additional sounds until the first call completes.  In some situations this is fine, but is not preferable in my case.  


Posted in WP7


Windows Phone 7 Series from MIX10

21 Mar

Great stuff this past week out of Microsoft’s MIX10 conference.  The opening keynote seemed focused in being a Windows Phone 7 Series (I hate saying that, I’m using Windows Phone 7 or WP7 instead) promo video for developers, which I liked.  Check out the keynote here, skip to time 27 minutes for Joe Belfiore for the initial WP7 demo. Things I like that came out:

  • Silverlight focused development
  • Complete Zune capability
  • Xbox live integration
  • Many third party developers are preparing apps for WP7
  • Controlled display specs on all phone models


Scott Guthrie claimed its truly Silverlight on WP7, not a ‘light’ version.  However, its come out that its not Silverlight 3 or 4, its something in the middle.  So its essential a unique version of Silverlight, ala WP7 Silverlight.  Perhaps it will catch up to true Silverlight 4 shortly before or after release.  Check out time 85:30 on the keynote for the Foursquare demo by Laura Foy.  Seems fairly slick for an app that was developed just a few weeks ahead of time.

I’ll cover my thoughts of the development environment in a later post.

Things I found out that bothered me:


None of those are deal breakers, but they are ruining the dream.  The phone for me better have at least 32 gigs of RAM, I want it to be a replacement of my first gen 30gig Zune player.  I need at least that much.  I cant imagine anyone using the phone as a serious music player with less then 16 gigs of RAM.  </ramble>

I’ll be watching news on this topic closely and post anything significant.  I plan to go through some development examples and possibly prepping for publishing a WP7 application on release.

1 Comment

Posted in WP7