关闭

mediaplay的运用以及详细用法

标签: androidmediaplay生命周期
114人阅读 评论(0) 收藏 举报
分类:

先说一个关于制作画线的版的问题,

画线版,首先你想到的肯定是一个动态的,因为起点终点不固定,动态的布局就要View,新建一个类,继承View类,要用到,起点,终点坐标,还有就onTouchEvent

用来监听你的手的动作。之后,还要刷新画板。

代码如下

package com.example.androidmedia;

import android.content.Context;
import android.graphics.Canvas;
import android.graphics.Paint;
import android.view.MotionEvent;
import android.view.View;

public class Huaxian extends View {
	private float x0, y0;//起点
	private float x1, y1;//终点

	public Huaxian(Context context) {
		super(context);
		// TODO Auto-generated constructor stub
	}

	@Override
	protected void onDraw(Canvas canvas) {
		Paint p = new Paint();//画笔
		canvas.drawLine(x0, y0, x1, y1, p);
		super.onDraw(canvas);
	}

	@Override
	public boolean onTouchEvent(MotionEvent event) {
		switch (event.getAction()) {
		case MotionEvent.ACTION_DOWN:
           x0=event.getX();
           y0=event.getY();
           
			break;
		case MotionEvent.ACTION_MOVE:
              x1=event.getX();
              y1=event.getY();
			break;
		case MotionEvent.ACTION_UP:
			 x1=event.getX();
             y1=event.getY();
			break;

		default:
			break;
		}
		invalidate();//刷新
		return true;
	}

}

mediaplay的播放音乐

package com.example.androidmedia;
<span style="font-size:18px;">
import java.io.IOException;



import android.media.MediaPlayer;
import android.os.Bundle;
import android.app.Activity;
import android.util.Log;
import android.view.Menu;
import android.view.View;
import android.widget.Button;

public class MusicActivity extends Activity {

	private Button id;
	private MediaPlayer mp;

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_music);
		id = (Button) findViewById(R.id.bt_pause);
		mp = new MediaPlayer();//新建Mediaplay
	}

	@Override
	public boolean onCreateOptionsMenu(Menu menu) {
		// Inflate the menu; this adds items to the action bar if it is present.
		getMenuInflater().inflate(R.menu.activity_music, menu);
		return true;
	}

	public void click(View v) {
		switch (v.getId()) {
		case R.id.bt_start:
			mp.reset();//

			try {

				mp.setDataSource("/mnt/sdcard/music.mp3");//链接文件库,方法多种,
				mp.prepare();
				mp.start();

			} catch (IOException e) {

				e.printStackTrace();
			}
			break;
		case R.id.bt_pause:
			if (mp != null) {
				if (mp.isPlaying()) {
					mp.pause();
					id.setText("继续");
				} else {
					mp.start();
					id.setText("暂停");
				}
			}
			break;
		case R.id.bt_stop:
			if (mp != null) {
				mp.stop();
				mp.release();
				this.finish();
			}
			break;
		case R.id.bt_restart:
			if (mp != null) {
				mp.stop();
				try {
					mp.prepare();
				} catch (IOException e) {
					// TODO Auto-generated catch block
					e.printStackTrace();
				}
				mp.seekTo(0);//从头开始播放
				mp.start();
			}
			break;
		default:
			break;
		}
	}

}
</span>
mediaplay要遵守其生命周期图的运行过程,来调用某个方法



媒体的播放与此差不多,只要添加一个SurfaceView。


0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:22760次
    • 积分:830
    • 等级:
    • 排名:千里之外
    • 原创:61篇
    • 转载:1篇
    • 译文:1篇
    • 评论:1条
    文章分类
    最新评论