package com.kitty.poclient.util; import java.util.HashMap; import org.fourthline.cling.binding.annotations.UpnpAction; import android.app.ProgressDialog; import android.content.Context; import android.content.Intent; import android.net.Uri; import com.kitty.poclient.common.Constant; import com.kitty.poclient.common.UpnpApp; import com.kitty.poclient.common.WatchDog; import com.kitty.poclient.domain.MusicDetail; import com.kitty.poclient.http.HttpGetter; import com.kitty.poclient.models.PlayingInfo; import com.kitty.poclient.test.MusicPlayService; import com.kitty.poclient.test.MusicServiceActivity; public class MediaUtil { private Context context; public MediaUtil(Context context) { this.context = context; } public void playLocally(final Long musicId) { // 显示progressDialog final ProgressDialog pd=new ProgressDialog(context); pd.setMessage("正在读取..."); pd.show(); new Thread(new Runnable() { @Override public void run() { String json=new HttpGetter(context).getMusicDetail(musicId); System.out.println("jsonMusicDetail="+json); try { MusicDetail mDetail=new JsonUtil().getMusicDetail(json); initPlayingInfo(mDetail); playAudio(mDetail.getListenUrl()); pd.dismiss(); } catch (Exception e) { UpnpApp.mainHandler.showAlert("网络异常!"); pd.dismiss(); e.printStackTrace(); } } }).start(); } protected void initPlayingInfo(MusicDetail mDetail) { String name=mDetail.getName(); String artist=mDetail.getArtist(); String imgUrl=mDetail.getImgUrl(); String duration=mDetail.getDuration(); WatchDog.setCurrentPlayingInfo(new PlayingInfo(name, artist, imgUrl, duration)); } public void playAudio(String audioPath) { audioPath = processUrl(audioPath); final String url = audioPath; // Intent intent = new Intent(Intent.ACTION_VIEW); // intent.setDataAndType(Uri.parse(url), "audio/*"); // intent.setComponent(new ComponentName("com.android.music", // "com.android.music.MediaPlaybackActivity")); // context.startActivity(intent); // Intent it = new Intent(Intent.ACTION_VIEW); // it.setDataAndType(Uri.parse(url), "audio/*"); // context.startActivity(it); if (WatchDog.runningMusicPlayServiceIntent != null) { context.stopService(WatchDog.runningMusicPlayServiceIntent); } Intent intent = new Intent(context, MusicPlayService.class); intent.putExtra("url", url); context.startService(intent); WatchDog.runningMusicPlayServiceIntent = intent; } private String processUrl(String mediaurl) { HashMap<String, Object> paramMap = new HashMap<String, Object>(); paramMap.put("terminaltype", 0); paramMap.put("apikey", Constant.DEVICE_NUMBER); paramMap.put("timestamp", System.currentTimeMillis()); paramMap.put("protocolver", "zx/1.1"); String playurl = SignaturGenUtil.createurl(mediaurl, paramMap, Constant.DEVICE_KEY); System.out.println("playurl=" + playurl); return playurl; } }