Music TabBar

buzztouch plugin: Music TabBar
By: chris1
Version: v1.1
Show a customizable music player in place of the tabbar. No matter what screen you switch to, the songs keep playing!
works on iOS iOS
Developer Info
Latest Review
PointerAppGuy30 | 11/07/14 (v1.0)
Works on buzztouch, not on your custom server.
Screenshots
More Information
Music TabBar
Copyright 2014, Chris Ruddell

This plugin replaces the standard tabbar with a music player. Scroll the player to the left and reveal a custom playlist of songs! Load songs from a local file in the project or via URL. If the song comes from online, the user has an option to download it to their device for quick listening in the future. There are lots of customizable options for this plugin, including setting background colors or images, text values and properties, showing a progress bar or a description line, and more!




Demo Video:
-----------------------
https://www.dropbox.com/s/1t8kb012amicmee/demo.mov




To Use:
-----------------------
To use this plugin, first create a screen using the plugin in your app. Then, make sure you are using a tabbed layout on the Control Panel, and set the screen of the first tab to the Music TabBar plugin screen you created. In the control panel page for the Music TabBar plugin, you should also set your initial page to show the users. This will become your new "home page".




For Plugin Developers:
------------------------
If you'd like to send a song to the Music TabBar player from your plugin, there are three easy ways to do this. Simply connect a button action to one of the following three methods:

//This method lets you send a local bundled file to the player.
+(void)loadSoundFromFile:(NSString*)fileName withIcon:(UIImage*)image andTitle:(NSString*)title andDescription:(NSString*)description;

//This method lets you send a song file from anywhere using NSURL. Typical usage will be [NSURL urlWithString:@"http://"];
+(void)loadSoundFromURL:(NSURL*)theURL withIcon:(UIImage*)image andTitle:(NSString*)title andDescription:(NSString*)description;

//This method lets you send a song file using the customized Cr_music_songItem object. If you understand this object, this can be a clean way of performing one of the methods above.
+(void)loadSongItem:(Cr_music_songItem*)songItem;

Note that these are all class methods from the CR_music_tabBar class. So, you could load a song into the player like this:
[Cr_music_tabBar loadSoundFromFile:@"localFile.mp3" withIcon:iconImage andTitle:@"My Song" andDescription:@"From my awesome album"];


Version history
------------------------
1.0 - initial build - 7/11/14
1.1 - Update for iOS 8 - 2/20/15

iOS Project
------------------------
Cr_music_tabBar_Controller.m
CR_music_tabBar.m
cr_music_download.png
cr_music_play.png
cr_music_pause.png
cr_music_rewind.png
cr_music_fastforward.png
Cr_music_songList.m
Cr_music_tabBar_Controller.h
cr_music_progressThumb.png
cr_music_progressThumb_inactive.png
cr_music_listview.png
CR_music_tabBar.h
Cr_music_songList.h
Cr_music_songItem.h
Cr_music_songItem.m
Cr_music_downloader.m
Cr_music_player.m
Cr_music_downloader.h
Cr_music_player.h




JSON Data
------------------------
{
"itemId":"EA42AB18EDF167B293CAB37",
"itemType":"CR_music_tabBar",
"itemNickname":"audio",
"itemId":"EA42AB18EDF167B293CAB37",
"itemType":"CR_music_tabBar",
"itemNickname":"audio",
"homeScreenItemNickname":"blank screen",
"homeScreenItemId":"DD7F1293A1417E94152AEA8",
"playerTitle":"Music Player",
"playerBGColor":"#f2e8d8",
"playerTextColor":"#000000",
"playerShowProgress":"1",
"playerTitleAlignment":"left",
"playlistText":"Playlist: %i songs",
"playlistFontColor":"#000000",
"playlistViewBGImage":"http://server.com/url.jpg",
"playlistViewBGImageLandscape":"http://www.server.com/url.jpg",
"playlistViewTitle":"Choose a song",
"childItems":[
{
"itemId":"C0A61A62459B2FECD524096",
"itemType":"BT_menuItem",
"songTitle":"Song 1",
"songDescription":"Song description",
"songIcon":"https://server.com/image.jpg",
"songLocation":"http://www.server.com/song.mp3"
},
{
"itemId":"B19835BCACBC731F54BA51B",
"itemType":"BT_menuItem",
"songTitle":"Song 2",
"songDescription":"A song description",
"songIcon":"https://server.com/image2.png",
"songLocation":"http://www.server.com/song2.wav"
}
]
}