mediaplay的运用以及详细用法

原创 2015年11月17日 21:45:26

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

画线版,首先你想到的肯定是一个动态的,因为起点终点不固定,动态的布局就要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。


Mediaplay 的理解 与使用方法

1)如何获得MediaPlayer实例: 可以使用直接new的方式: MediaPlayer mp = new MediaPlayer(); 也可以使用create的方式,如: MediaPl...
  • jie1175623465
  • jie1175623465
  • 2017年12月07日 10:51
  • 36

SDWebImage缓存操作

在用户连接网络,获取网络资源的时候,SDWebImage会自动帮我们进行数据的缓存,如果要对缓存进行处理,我们必须知道SDWebImage是如何对我们的数据进行缓存操作的,首先导入--SDImageC...
  • qq_25591667
  • qq_25591667
  • 2016年10月11日 23:27
  • 174

MediaPlay使用以及注意

MediaPlayer MediaPlayer
  • qq_34850038
  • qq_34850038
  • 2018年01月07日 00:47
  • 33

几道常问的题

是在牛客网上的某大神面经里看到的,大神总结了一下问题,我给写上答案方便查阅,有不对的请留言,随时修改。 J2SE基础 1. 九种基本数据类型的大小,以及他们的封装类。 基本类型 ...
  • sadjladjlas
  • sadjladjlas
  • 2016年05月26日 12:21
  • 6088

jvm-java 内存模型 以及各个分区具体内容

java内存模型
  • steady_pace
  • steady_pace
  • 2016年04月26日 22:08
  • 5705

手把手git教程(01)--安装与环境设置

一:Git是什么?        Git是目前世界上最先进的分布式版本控制系统。 二:SVN与Git的最主要的区别?       SVN是集中式版本控制系统,版本库是集中放在中央服务器的,而干活...
  • andylauren
  • andylauren
  • 2017年04月13日 22:42
  • 332

C3P0配置以及详细用法

一:C3P0Utils:负责从连接池获取一个连接、放回一个连接。 在src目录下新建一个名叫 c3p0-config.xml 的文件,注意,必须是这个文件名。 c3p0-config> ...
  • MUYIYOUNG
  • MUYIYOUNG
  • 2018年02月02日 16:36
  • 17

一些基础复习要点

J2SE基础 1. 九种基本数据类型的大小,以及他们的封装类。 2. Switch能否用string做参数? 3. equals与==的区别。 4. Object有哪些公用方法...
  • no_best_only_better
  • no_best_only_better
  • 2015年09月28日 10:23
  • 402

OKHttp介绍和实例展示

OkHttp是现在当下比较流行的一个网络加载框架,可以使你在更加节约带宽的前提下高效的完成数据和媒体的传输特点 1.支持所有的请求共享同一个Socket 2.连接池减少了潜在的请求 3.明显的压...
  • topone37
  • topone37
  • 2016年03月16日 16:53
  • 351

JVM内存模型及分区

Java虚拟机在程序执行过程会把jvm的内存分为若干个不同的数据区域来管理,这些区域有自己的用途,以及创建和销毁时间。 jvm管理的内存区域包括以下几个区域: 栈区: 栈分为java虚拟机栈和本...
  • tsdfk1455
  • tsdfk1455
  • 2016年05月30日 23:43
  • 5822
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:mediaplay的运用以及详细用法
举报原因:
原因补充:

(最多只允许输入30个字)