Just wanted to give a big thanks to Appcelerator for making this product available.
My first app has been approved and is in the App Store now. It uses background audio, has lots of streaming video and a lot more.
A word of note - as someone else noted in the Q&A, be careful of how you set UIBackgroundModes in your Info.plist. I had mine set for Audio and Location. I incorrectly thought that because I was getting the user's location I had to set Location. This isn't true. I realized after that you only set this if you need the user's location when the app isn't active in the foreground. This may be obvious to some, but to me it wasn't at first.
My first submission was rejected because of this so I resubmitted, waited the 5 days to get into review and then another 1/2 day to get approved.
Peter - you need to set…
Ti.Media.defaultAudioSessionMode = Ti.Media.AUDIO_SESSION_MODE_PLAYBACK;
Also, in your Info.plist make sure you add audio to the UIBackgroundModes section. There's plenty of info about in the Q&A and elsewhere on the web if you're unsure exactly how to do that.
Great job :) From those screenshots, it looks like a great App :)
Awesome job, looks pretty cool. I like how you used background streaming but the pause and play button don't work with the ipod control. Is this something for yourself or did you do this app for the singer?
Good job.. downloaded and I'm impressed. I'd love to have this app as a template to do my own but I know that would be asking for too much.. :)
Interesting how Apple allowed you to have the Buy Direct feature to by-pass their in-app model. What happens after someone checks out through PayPal, how to do they get the audio to the phone?
Sj Sing - I couldn't figure out how to get the Play/Pause button in the iPod controls to control the background audio. I even posted in the Q&A to see if others had a possible solution, but I didn't hear anything back.
While the Titanium Mobile platform is amazing and pretty complete, I see a lot of work that's needed to be done on the Media API. I'm hoping SDK 1.5 will address some of these issues (maybe local notifications will help with this?), but like I said, TI is already incredibly powerful so I'm very pleased. For me, not being able to use the iPod controls ss kind of a bummer, but it isn't a deal breaker for me. I think I implemented the streaming audio as well as I could with the time I allowed myself.
Here's some other information regarding the development process that may be useful to some.
My overall idea was that I wanted as much of the content in the app as possible to be driven dynamically from my web server. This way I can add/update/delete content as I see necessary.
Audio & Photos - stored on my web server in a private directory. I use basic authentication to pull them into the app. I use XML files to look at which content I have available.
Video - pulled from my Vimeo profile using the Basic API.
Calendar - parsed from a Google Calendar that I have for my gigs. I have the same parser on my website so it was easy to adapt for the app.
News - this is just the RSS feed from my website - www.ejtmusic.com.
Mailing List (in the Settings part of the app) - managed through the Campaign Monitor API.
Push Notifications - handled through Urban Airship.
There were other options I explored at length. One was having real playback controls in the app itself for streaming audio. I found, however, that when audio is streamed there are some bugs with how it detects the length of the audio file. And, there's currently no way to control the volume of streamed audio so playback controls became less important in my mind.
I also toyed with the idea of allowing people to download tracks right to their device, but again I decided maybe that's for a future release.
I'm happy to answer any other questions anyone might have.
Congrats! Keep up the great job!
Sj Sing - regarding push notifications…
Not exactly. You register w/ Urban Airship like in the Kitchen Sink example or the example on the urban airship blog.
After you have a device registered you can choose a couple of different methods for sending notifications to users. For my event notifications I let Urban Airship handle it by registering a delayed notification via their API. Check out the documentation on their site for more info.
Great trumpet playing too! Really like "Transitions"