mediaplay的运用以及详细用法

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

画线版,首先你想到的肯定是一个动态的,因为起点终点不固定,动态的布局就要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
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值