前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家
<?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/btn_main_play"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="play" />
<Button
android:id="@+id/btn_main_stop"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="stop" />
<Button
android:id="@+id/btn_main_pause"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="pause" />
<Button
android:id="@+id/btn_main_exit"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="exit" />
</LinearLayout>
处理Activity类
package com.hbk.musicservice;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
public class MainActivity extends Activity implements OnClickListener {
private Button btn_main_play;
private Button btn_main_stop;
private Button btn_main_pause;
private Button btn_main_exit;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
btn_main_play = (Button) findViewById(R.id.btn_main_play);
btn_main_stop = (Button) findViewById(R.id.btn_main_stop);
btn_main_pause = (Button) findViewById(R.id.btn_main_pause);
btn_main_exit = (Button) findViewById(R.id.btn_main_exit);
btn_main_play.setOnClickListener(this);
btn_main_stop.setOnClickListener(this);
btn_main_pause.setOnClickListener(this);
btn_main_exit.setOnClickListener(this);
}
// 通过Intent携带数据进行区分
@Override
public void onClick(View v) {
Intent intent = new Intent(this, MusicService.class);
if (btn_main_play == v) {//播放
intent.putExtra("action", "play");
startService(intent);
} else if (btn_main_stop == v) {//停止播放
intent.putExtra("action", "stop");
startService(intent);
} else if (btn_main_pause == v) {//暂停音乐
intent.putExtra("action", "pause");
startService(intent);
} else if (btn_main_exit == v) {//退出并停止音乐
//停止服务
stopService(intent);
finish();
}
}
}
注意不能使用Activity去处理,而是用上面的Service
package com.hbk.musicservice;
import android.app.Activity;
import android.media.MediaPlayer;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
/**
* 结论:不能使用Activity去播放音乐,当按退出返回键,重新进入的时候,点播放会重复播放,无法控制。
* @author 黄宝康
*
*/
public class MainActivity1 extends Activity implements OnClickListener {
private Button btn_main_play;
private Button btn_main_stop;
private Button btn_main_pause;
private Button btn_main_exit;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
btn_main_play = (Button) findViewById(R.id.btn_main_play);
btn_main_stop = (Button) findViewById(R.id.btn_main_stop);
btn_main_pause = (Button) findViewById(R.id.btn_main_pause);
btn_main_exit = (Button) findViewById(R.id.btn_main_exit);
btn_main_play.setOnClickListener(this);
btn_main_stop.setOnClickListener(this);
btn_main_pause.setOnClickListener(this);
btn_main_exit.setOnClickListener(this);
}
@Override
public void onClick(View v) {
if (btn_main_play == v) {//播放
playMusic();
} else if (btn_main_stop == v) {//停止播放
stopMusic();
} else if (btn_main_pause == v) {//暂停音乐
pauseMusic();
} else if (btn_main_exit == v) {//退出并停止音乐
exitMusic();
}
}
private MediaPlayer player;
private void exitMusic() {
stopMusic();
finish();
}
/*
* 暂停音乐
*/
private void pauseMusic() {
if(player!=null && player.isPlaying()) {
player.pause();
}
}
private void stopMusic() {
if(player!=null) {
player.stop();//停止
player.reset();//重置
player.release();//释放资源
player = null;//赋空
}
}
/**
* 播放音乐
*/
private void playMusic() {
if(player==null) {
player = MediaPlayer.create(this,R.raw.water_hander);
}
player.start();
}
}
清单文件注册Service
<service android:name="com.hbk.musicservice.MusicService"/>
把音乐文件放在raw文件夹下