论坛首页 移动开发技术论坛

一个简单的音乐播放器

浏览 7499 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (2) :: 隐藏帖 (3)
作者 正文
   发表时间:2011-10-13  
在这里主要是用两个简单的按钮实现音乐的播放和停止功能,工程的目录结构为

同时添加一个文件夹,里面放后缀为MP3的文件就可以了
在main配置文件主要是添加两个Button
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:Android="http://schemas.android.com/apk/res/android"
Android:orientation="vertical" Android:layout_width="fill_parent"
Android:layout_height="fill_parent">
<TextView Android:layout_width="fill_parent"
Android:layout_height="wrap_content" Android:text="音乐播放服务" />
<Button Android:id="@+id/startMusic" Android:layout_width="wrap_content"
Android:layout_height="wrap_content" Android:text="开启音乐播放服务" />
<Button Android:id="@+id/stopMusic" Android:layout_width="wrap_content"
Android:layout_height="wrap_content" Android:text="停止音乐播放服务" />
</LinearLayout>  

添加一个activity类和一个service类AndroidManifest.xml配置文件为
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
      package="com.basi"
      android:versionCode="1"
      android:versionName="1.0">


    <application android:icon="@drawable/icon" android:label="@string/app_name">
        <activity android:name=".MusicServiceActivity"
                  android:label="@string/app_name">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
        <service android:name=".MusicService"></service>
    </application>
</manifest>

创建一个MusicServiceActivity类启动service类
package com.basi;

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.Toast;

public class MusicServiceActivity extends Activity {

private static String TAG = "MusicService";

@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
Toast.makeText(this, "MusicServiceActivity", Toast.LENGTH_SHORT).show();
Log.e(TAG, "MusicServiceActivity");
initlizeViews();
}

private void initlizeViews() {
Button btnStart = (Button) findViewById(R.id.startMusic);
Button btnStop = (Button) findViewById(R.id.stopMusic);
OnClickListener ocl = new OnClickListener() {
public void onClick(View v) {
Intent intent = new Intent(MusicServiceActivity.this,
MusicService.class);
switch (v.getId()) {
case R.id.startMusic:
// 开始服务
startService(intent);
break;
case R.id.stopMusic:
// 停止服务
stopService(intent);
break;
}
}
};
btnStart.setOnClickListener(ocl);
btnStop.setOnClickListener(ocl);
}

}

service类代码为
package com.basi;

import android.app.Service;
import android.content.Intent;
import android.media.MediaPlayer;
import android.os.IBinder;
import android.util.Log;
import android.widget.Toast;

public class MusicService extends Service {
private static String TAG = "MusicService";
private MediaPlayer mPlayer;

@Override
public void onCreate() {
Toast.makeText(this, "MusicSevice onCreate()", Toast.LENGTH_SHORT)
.show();
Log.e(TAG, "MusicSerice onCreate()");
mPlayer = MediaPlayer.create(getApplicationContext(), R.raw.a);
// 设置可以重复播放
mPlayer.setLooping(true);
super.onCreate();
}

@Override
public void onStart(Intent intent, int startId) {
Toast.makeText(this, "MusicSevice onStart()", Toast.LENGTH_SHORT)
.show();
Log.e(TAG, "MusicSerice onStart()");

mPlayer.start();
super.onStart(intent, startId);
}

@Override
public void onDestroy() {
Toast.makeText(this, "MusicSevice onDestroy()", Toast.LENGTH_SHORT)
.show();
Log.e(TAG, "MusicSerice onDestroy()");

mPlayer.stop();
super.onDestroy();
}

@Override
public IBinder onBind(Intent intent) {

return null;
}

}
效果图为


  • 大小: 15.7 KB
  • 大小: 73.2 KB
   发表时间:2011-10-17  
不只是简单,那是相当简单
0 请登录后投票
   发表时间:2011-10-17  
请求源码,
0 请登录后投票
   发表时间:2011-10-17  
zlq636785 写道
请求源码,

一共就几行
0 请登录后投票
   发表时间:2011-10-17  
是的就是几行代码就可以了,就是一个重复播放和停止功能而已
0 请登录后投票
   发表时间:2011-10-17  
入門練習~~
0 请登录后投票
   发表时间:2011-10-17  
呵呵是的,最近自己学一下android,就自己写一些小案例
0 请登录后投票
   发表时间:2011-10-18  
歌词都没有  还有就是代码不是这样贴的
0 请登录后投票
   发表时间:2011-10-18  
y13872888163 写道
歌词都没有  还有就是代码不是这样贴的

由于本人一直在javaeye一直潜水,比较少发东西,所以只能这样发了
0 请登录后投票
   发表时间:2011-10-20  
这也太简单了吧。
0 请登录后投票
论坛首页 移动开发技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics