/vuece-controller

An Android mobile application that uses a customized libjingle library for real-time music streaming

Primary LanguageJavaMIT LicenseMIT

Vuece Android Music Controller

Vuece Android Music Controller is the mobile client that receives stream data from Vuece Hub, then decodes and plays the stream data as music in real time.

Software Components and Highlights

Vuece Controller consists of 3 major components

  • The Java component that
    • has an adaptable UI that adapts the layout on different Android device and interacts with end user as a normal music player application
    • supports Google OAuth2 authentication and authorization
    • supports very efficient music file browsing (because file index is transfered from the hub and cached on the device as a sqlite database, database update is triggered only when the MD5 signature is changed on remote Hub)
    • actual album picture is extracted from remote music file (using ffmpeg library) and displayed on the mobile device, in real-time
  • A Java Native Interface(JNI) that interacts with Java component and the native libjingle component, relavent source code can be found in submodules
  • The native C++ component that uses the customized libjingle library to do the heavy lifting of networking and streaming, detailed compilation configuration can be found in submodules/vtalk/Android.mk

See the 'official' user guide and screenshots here: Vuece Music User Guide

Development Notes

Action Bar Sherlock

  • Vuece controller depends on Action Bar Sherlock, so please download latest ABS and include ActionBarSherlock as a library project.
  • Create a new Android project in Eclipse using the library/ folder as the existing source.
  • Copy the android-support-v4.jar from Vuece Controller project's libs to the one in ABS's library and overwrite it. (because the one in ABS is older)
  • Then, in your project properties, add the created project under the 'Libraries' section of the 'Android' category.

How to install the .apk file from command line?

C:\Android\android-sdk\platform-tools\adb -d install -r C:\Users\jj\git\vuece-controller\bin\vuece-controller.apk 

How to save log generated by mobile app?

C:\Android\android-sdk\platform-tools\adb logcat > P:\vuece_mobile_trace_yyyymmdd.log

How to setup OAuth library?

Please get familiar with Set Up Google Play Services

To make the Google Play services APIs available to your app:

  1. Copy the library project at /extras/google/google_play_services/libproject/google-play-services_lib/ to the location where you maintain your Android app projects.
  2. Import the library project into your Eclipse workspace. Click File > Import, select Android > Existing Android Code into Workspace, and browse to the copy of the library project to import it.
  3. In your app project, reference Google Play services library project. See Referencing a Library Project for Eclipse for more information on how to do this. Note: You should be referencing a copy of the library that you copied to your development workspace, you should not reference the library directly from the Android SDK directory.

Migrate to Android Studio

Since Vuece Music application was developed using Eclipse, Android Studio should be used for new development, please refer to official document Migrate to Android Studio regarding how to migrate Android Eclipse project to Android Studio project.