两种方式播放音乐

main.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical" >

    <Button
        android:id="@+id/url"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:text="url方式播放" />

    <Button
        android:id="@+id/uri"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:text="uri方式播放" />

    <Button
        android:id="@+id/stop"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:text="停止" />

</LinearLayout>

 SdService.java

写道
package com.cat.test;

import java.io.File;

import android.os.Environment;

public class SdService
{
private static Boolean sdCardExist;

/**
* 获得sdcard
*
* @return
*/
public static String getSDPath()
{
File sdDirFile = null;
sdCardExist = Environment.getExternalStorageState().equals(
android.os.Environment.MEDIA_MOUNTED); // 判断sd卡是否存在
if (sdCardExist)
{
sdDirFile = Environment.getExternalStorageDirectory();// 获取跟目录
return sdDirFile.toString();
} else
{
return "";
}
}

}

 playService

package com.cat.test;

import android.content.Context;
import android.media.MediaPlayer;
import android.media.MediaPlayer.OnCompletionListener;
import android.net.Uri;
import android.util.Log;

public class playService
{
	private static MediaPlayer mPlayer;
	/** 为url时 */
	public static final int URLPLAY = 0;
	/** 为uri时 */
	public static final int URIPLAY = 1;
	private static final String TAG = "playService";

	public static void PlayMusic(Context context, String url, int play)
	{
		mPlayer = new MediaPlayer();
		switch (play)
		{
		case URLPLAY:
			urlPlayMusic(url);
			break;
		case URIPLAY:
			Uri uri = Uri.parse(url);
			uriPlayMusic(uri, context);
			break;
		default:
			break;
		}
	}

	public static void stopMusic()
	{
		if (mPlayer != null)
		{
			/* 是否正在播放 */
			if (mPlayer.isPlaying())
			{
				// 重置MediaPlayer到初始状态
				mPlayer.stop();
			}
		}
	}

	private static void urlPlayMusic(String url)
	{
		try
		{
			Log.v(TAG, "urlPlayMusic-->" + url);
			// 重置MediaPlayer
			mPlayer.reset();
			// 设置要播放的文件的路径
			mPlayer.setDataSource(url);
			// 准备播放
			mPlayer.prepare();
			// 开始播放
			mPlayer.start();
			// 音乐播放完执行的操作
			mPlayer.setOnCompletionListener(new OnCompletionListener()
			{

				@Override
				public void onCompletion(MediaPlayer mp)
				{
					// TODO Auto-generated method stub

				}
			});
		} catch (Exception e)
		{
			// TODO: handle exception
			Log.v(TAG, "urlPlayMusic-->" + "播放失败");
		}

	}

	private static void uriPlayMusic(Uri uri, Context context)
	{

		try
		{
			Log.v(TAG, "uriPlayMusic-->" + uri.toString());
			mPlayer.reset();
			/* 设置要播放的文件的路径 */
			mPlayer.setDataSource(context, uri);
			/* 准备播放 */
			mPlayer.prepare();
			/* 开始播放 */
			mPlayer.start();
			mPlayer.setOnCompletionListener(new OnCompletionListener()
			{

				@Override
				public void onCompletion(MediaPlayer mp)
				{
					// TODO Auto-generated method stub

				}
			});
		} catch (Exception e)
		{
			// TODO: handle exception
			Log.v(TAG, "uriPlayMusic-->" + "播放失败");
		}

	}
}

 

 PlayMusicActivity.java

package com.cat.test;

import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;

public class PlayMusicActivity extends Activity
{
	/** Called when the activity is first created. */
	private Button urlPlayButton;
	private Button uriPlayButton;
	private Button stopButton;
	private String playUrlString;

	@Override
	public void onCreate(Bundle savedInstanceState)
	{
		super.onCreate(savedInstanceState);
		setContentView(R.layout.main);

		urlPlayButton = (Button) findViewById(R.id.url);
		uriPlayButton = (Button) findViewById(R.id.uri);
		playUrlString = SdService.getSDPath() + "/test.mp3";
		stopButton = (Button) findViewById(R.id.stop);
		OnClickListener playOnClickListener = new OnClickListener()
		{

			@Override
			public void onClick(View v)
			{
				// TODO Auto-generated method stub
				switch (v.getId())
				{
				case R.id.url:
					playService.PlayMusic(PlayMusicActivity.this,
							playUrlString, playService.URLPLAY);
					break;
				case R.id.uri:
					playService.PlayMusic(PlayMusicActivity.this,
							playUrlString, playService.URIPLAY);
					break;
				case R.id.stop:
					playService.stopMusic();
					break;

				default:
					break;
				}
			};
		};

		urlPlayButton.setOnClickListener(playOnClickListener);
		uriPlayButton.setOnClickListener(playOnClickListener);
		stopButton.setOnClickListener(playOnClickListener);

	}
}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值