Advertisement
Guest User

Untitled

a guest
Oct 20th, 2014
234
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 9.53 KB | None | 0 0
  1. public void playSong(int songIndex) {
  2. // Play song
  3. try {
  4. mp.reset();
  5. mp.setDataSource(songsListingSD.get(songIndex).get("songPath"));
  6. mp.prepare();
  7. mp.start();
  8. // Displaying Song title
  9. String songTitle = songsListingSD.get(songIndex).get("songTitle");
  10. songTitleLabel.get().setText(songTitle);
  11. // Changing Button Image to pause image
  12. btnPlay.get().setImageResource(R.drawable.ic_media_pause);
  13. // set Progress bar values
  14. songProgressBar.get().setProgress(0);
  15. songProgressBar.get().setMax(100);
  16. // Updating progress bar
  17. updateProgressBar();
  18. } catch (IllegalArgumentException e) {
  19. e.printStackTrace();
  20. } catch (IllegalStateException e) {
  21. e.printStackTrace();
  22. } catch (IOException e) {
  23. e.printStackTrace();
  24. }
  25. }
  26.  
  27. I have implemented this musi cservcie class which is working fine
  28. public class MusicSrvice extends Service implements MediaPlayer.OnErrorListener,MediaPlayer.OnCompletionListener, MediaPlayer.OnInfoListener{
  29. public static final String ACTION_STOP="com.example.music4u.ACTION_STOP";
  30. public static final String ACTION_PLAY="com.example.music4u.ACTION_PLAY";
  31. public static final String ACTION_PAUSE="com.example.music4u.ACTION_PAUSE";
  32. private final IBinder mBinder = new ServiceBinder();
  33. MediaPlayer mPlayer;
  34. String path="";
  35. private int length = 0;
  36. private boolean isPlaying = false;
  37. private static final int NOTIFICATION_ID = 1;
  38.  
  39. public MusicSrvice() { }
  40.  
  41. public class ServiceBinder extends Binder {
  42. MusicSrvice getService()
  43. {
  44. return MusicSrvice.this;
  45. }
  46. }
  47.  
  48. @Override
  49. public IBinder onBind(Intent arg0){return mBinder;}
  50.  
  51. @Override
  52. public void onCreate (){
  53. super.onCreate();
  54. AudioManager amanager = (AudioManager) this.getSystemService(Context.AUDIO_SERVICE);
  55. int maxVolume = amanager.getStreamMaxVolume(AudioManager.STREAM_MUSIC);
  56. amanager.setStreamVolume(AudioManager.STREAM_MUSIC, maxVolume, 0);
  57. mPlayer=new MediaPlayer();
  58. mPlayer.setAudioStreamType(AudioManager.STREAM_MUSIC);
  59. // mPlayer = MediaPlayer.create(this, R.raw.jingle);
  60. mPlayer.setOnErrorListener(this);
  61.  
  62. if(mPlayer!= null)
  63. {
  64. mPlayer.setLooping(true);
  65. //mPlayer.setVolume(100,100);
  66. }
  67.  
  68.  
  69. /* mPlayer.setOnErrorListener(new OnErrorListener() {
  70.  
  71. public boolean onError(MediaPlayer mp, int what, int
  72. extra){
  73.  
  74. onError(mPlayer, what, extra);
  75. return true;
  76. }
  77. });*/
  78. }
  79.  
  80. @Override
  81. public int onStartCommand (Intent intent, int flags, int startId)
  82. {
  83.  
  84. if(intent.getExtras()!=null){
  85. path =intent.getExtras().getString("path");
  86.  
  87. }
  88. Context c = getApplicationContext();
  89.  
  90.  
  91. if (intent != null) {
  92. String action = intent.getAction();
  93. if(action!=null){
  94. // if (!TextUtils.isEmpty(action)) {
  95. if (action.equals(ACTION_STOP)) {
  96. pauseMusic(path);
  97. }}
  98. }
  99. //}
  100. /// path = intent.getStringExtra(EXTRA_FILENAME);
  101. if (path == null) {
  102. Log.w("logtag", "PlayService::onStart recording == null, returning");
  103. //return;
  104. }
  105.  
  106. Log.i("", "PlayService will play " + path);
  107. try {
  108. if(mPlayer!=null){
  109. mPlayer.reset();
  110. mPlayer.setAudioStreamType(AudioManager.STREAM_MUSIC);
  111. mPlayer.setDataSource(path);
  112. mPlayer.setLooping(false);
  113. mPlayer.prepare();
  114. Log.d("logtag", "PlayService player.prepare() returned");
  115. mPlayer.start();
  116. CustomNotification();
  117.  
  118.  
  119. isPlaying = true;
  120. Log.i("logtag", "player.start() returned");}
  121. else
  122. {
  123. Log.i("logtag", "mediaplayer null");
  124. }
  125. //updateNotification(true);
  126. } catch (java.io.IOException e) {
  127. Log.e("", "PlayService::onStart() IOException attempting player.prepare()n");
  128. Toast t = Toast.makeText(getApplicationContext(), "PlayService was unable to start playing recording: " + e, Toast.LENGTH_LONG);
  129. t.show();
  130. // return;
  131. } catch (java.lang.Exception e) {
  132. Toast t = Toast.makeText(getApplicationContext(), "MusicPlayer was unable to start playing recording: " + e, Toast.LENGTH_LONG);
  133. t.show();
  134.  
  135. Log.e("", "PlayService::onStart caught unexpected exception", e);
  136. }
  137.  
  138. return START_STICKY;
  139. }
  140.  
  141. public void pauseMusic(String path)
  142. {
  143. if(mPlayer.isPlaying())
  144. {
  145. mPlayer.pause();
  146. length=mPlayer.getCurrentPosition();
  147.  
  148. }
  149. else{
  150. mPlayer.reset();
  151. mPlayer.setAudioStreamType(AudioManager.STREAM_MUSIC);
  152. try {
  153. mPlayer.setDataSource(path);
  154. } catch (IllegalArgumentException e) {
  155. // TODO Auto-generated catch block
  156. e.printStackTrace();
  157. } catch (SecurityException e) {
  158. // TODO Auto-generated catch block
  159. e.printStackTrace();
  160. } catch (IllegalStateException e) {
  161. // TODO Auto-generated catch block
  162. e.printStackTrace();
  163. } catch (IOException e) {
  164. // TODO Auto-generated catch block
  165. e.printStackTrace();
  166. }
  167. mPlayer.setLooping(false);
  168. try {
  169. mPlayer.prepare();
  170. } catch (IllegalStateException e) {
  171. // TODO Auto-generated catch block
  172. e.printStackTrace();
  173. } catch (IOException e) {
  174. // TODO Auto-generated catch block
  175. e.printStackTrace();
  176. }
  177. Log.d("logtag", "PlayService player.prepare() returned");
  178. mPlayer.start(); }
  179. }
  180.  
  181. public void playNextSong(String path)
  182. {
  183. mPlayer.stop();
  184. mPlayer.reset();
  185. mPlayer.setAudioStreamType(AudioManager.STREAM_MUSIC);
  186. try {
  187. mPlayer.setDataSource(path);
  188. } catch (IllegalArgumentException e) {
  189. // TODO Auto-generated catch block
  190. e.printStackTrace();
  191. } catch (SecurityException e) {
  192. // TODO Auto-generated catch block
  193. e.printStackTrace();
  194. } catch (IllegalStateException e) {
  195. // TODO Auto-generated catch block
  196. e.printStackTrace();
  197. } catch (IOException e) {
  198. // TODO Auto-generated catch block
  199. e.printStackTrace();
  200. }
  201. mPlayer.setLooping(false);
  202. try {
  203. mPlayer.prepare();
  204. } catch (IllegalStateException e) {
  205. // TODO Auto-generated catch block
  206. e.printStackTrace();
  207. } catch (IOException e) {
  208. // TODO Auto-generated catch block
  209. e.printStackTrace();
  210. }
  211. Log.d("logtag", "PlayService player.prepare() returned");
  212. mPlayer.start();
  213. }
  214. public boolean isplaying(){
  215. if(mPlayer!= null)
  216. {
  217. return mPlayer.isPlaying();}
  218. return false;
  219. }
  220. public void seekto(int duration){
  221. if(mPlayer!= null)
  222. {
  223. mPlayer.seekTo(duration);}
  224. }
  225. public int getCurrentPosition(){
  226. if(mPlayer!= null)
  227. {
  228. return mPlayer.getCurrentPosition();}
  229. return 0;
  230.  
  231. }
  232. public int getDuration(){
  233. if(mPlayer!= null)
  234. {
  235. return mPlayer.getDuration();}
  236. return 0;
  237.  
  238. }
  239. public void resumeMusic()
  240. {
  241. if(mPlayer.isPlaying()==false)
  242. {
  243. mPlayer.seekTo(length);
  244. mPlayer.start();
  245. }
  246. }
  247.  
  248. public void stopMusic()
  249. {
  250. mPlayer.stop();
  251. mPlayer.release();
  252. mPlayer = null;
  253. }
  254.  
  255. @Override
  256. public void onDestroy ()
  257. {
  258. super.onDestroy();
  259. if(mPlayer != null)
  260. {
  261. try{
  262. mPlayer.stop();
  263. mPlayer.release();
  264. }finally {
  265. mPlayer = null;
  266. }
  267. }
  268. }
  269. @Override
  270. public void onLowMemory() {
  271. // TODO Auto-generated method stub
  272. super.onLowMemory();
  273. NotificationManager notificationManager = (NotificationManager) getSystemService(NOTIFICATION_SERVICE);
  274. String message = "Sorry your system has low memory";
  275. Notification notification = new Notification(android.R.drawable.ic_dialog_alert, message, System.currentTimeMillis());
  276. notificationManager.notify(1, notification);
  277. stopSelf();
  278. }
  279.  
  280. public boolean onError(MediaPlayer mp, int what, int extra) {
  281.  
  282. Toast.makeText(this, "music player failed", Toast.LENGTH_SHORT).show();
  283. if(mPlayer != null)
  284. {
  285. try{
  286. mPlayer.stop();
  287. mPlayer.release();
  288. }finally {
  289. mPlayer = null;
  290. }
  291. }
  292. return false;
  293. }
  294.  
  295. @Override
  296. public boolean onInfo(MediaPlayer arg0, int arg1, int arg2) {
  297. // TODO Auto-generated method stub
  298. return false;
  299. }
  300.  
  301. @Override
  302. public void onCompletion(MediaPlayer arg0) {
  303. // TODO Auto-generated method stub
  304.  
  305. }
  306. public void release(){
  307. mPlayer.release();
  308. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement