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。


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章