安卓用服务做一个简单音乐播放器
来源:互联网 发布:java 射击游戏 编辑:程序博客网 时间:2024/06/05 05:47
xml文件
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:paddingBottom="@dimen/activity_vertical_margin" android:paddingLeft="@dimen/activity_horizontal_margin" android:paddingRight="@dimen/activity_horizontal_margin" android:paddingTop="@dimen/activity_vertical_margin" tools:context=".PlayActivity" > <Button android:id="@+id/btnPause" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignBaseline="@+id/btnPlay" android:layout_alignBottom="@+id/btnPlay" android:layout_toRightOf="@+id/btnPlay" android:onClick="MediaPlay" android:text="@string/pause" /> <Button android:id="@+id/btnStop" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignBaseline="@+id/btnRePlay" android:layout_alignBottom="@+id/btnRePlay" android:layout_marginLeft="18dp" android:layout_toRightOf="@+id/btnRePlay" android:onClick="MediaPlay" android:text="@string/stop" /> <Button android:id="@+id/btnRePlay" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignBaseline="@+id/btnPause" android:layout_alignBottom="@+id/btnPause" android:layout_marginLeft="18dp" android:layout_toRightOf="@+id/btnPause" android:onClick="MediaPlay" android:text="@string/reset" /> <Button android:id="@+id/btnPlay" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentLeft="true" android:layout_alignParentTop="true" android:layout_marginLeft="16dp" android:onClick="MediaPlay" android:text="@string/play" /> </RelativeLayout>新建一个类MyMusicService.java
package com.example.musicplayerdemo;import android.app.Service;import android.content.Intent;import android.media.AudioManager;import android.media.MediaPlayer;import android.media.MediaPlayer.OnPreparedListener;import android.net.Uri;import android.os.IBinder;import android.util.Log;public class MyMusicService extends Service {private MediaPlayer mediaPlayer;// = new MediaPlayer(); //媒体播放器对象private boolean isPause; // 暂停状态@Overridepublic IBinder onBind(Intent arg0) {return null;}@Overridepublic void onCreate() {super.onCreate();mediaPlayer = MediaPlayer.create(this, R.raw.znq);// 此处引用到我们的mp3文件,raw文件夹的。Log.i("Msg", "create");}@Overridepublic int onStartCommand(Intent intent, int flags, int startId) {int msg = intent.getIntExtra("MSG", 0);Log.i("Msg", msg + "");if (msg == 0) {play(0);} else if (msg == 1) {pause();} else if (msg == 2) {reset();} else if (msg == 3) {stop();}return super.onStartCommand(intent, flags, startId);}/** * 播放音乐 * * @param position */private void play(int position) {try {mediaPlayer.start(); // 开始播放if (position > 0) { // 如果音乐不是从头播放mediaPlayer.seekTo(position);}} catch (Exception e) {e.printStackTrace();}}/** * 暂停音乐 */private void pause() {if (mediaPlayer != null && mediaPlayer.isPlaying()) {mediaPlayer.pause();isPause = true;} else {if (isPause) {mediaPlayer.start();isPause = false;}}}/** * 停止音乐 */private void reset() {if (mediaPlayer.isPlaying()) {mediaPlayer.seekTo(0);} else {play(0);}}/** * 停止音乐 */private void stop() {if (mediaPlayer != null) {mediaPlayer.stop();try {mediaPlayer.prepare(); // 在调用stop后如果需要再次通过start进行播放,需要之前调用prepare函数} catch (Exception e) {e.printStackTrace();}}}@Overridepublic void onDestroy() {if (mediaPlayer != null) {mediaPlayer.stop();mediaPlayer.release();}}}
Play.Activity
package com.example.musicplayerdemo;import android.app.Activity;import android.content.Intent;import android.os.Bundle;import android.view.View;public class PlayActivity extends Activity {@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_play);}public void MediaPlay(View v) {switch (v.getId()) {case R.id.btnPlay:StartService(0);break;case R.id.btnPause:StartService(1);break;case R.id.btnRePlay:StartService(2);break;case R.id.btnStop:StartService(3);break;}}private void StartService(int flag) {Intent intent = new Intent();intent.putExtra("MSG", flag);intent.setClass(PlayActivity.this, MyMusicService.class);startService(intent);}}
阅读全文
0 0
- 安卓用服务做一个简单音乐播放器
- 做一个简单的音乐播放器
- 利用java做一个简单的音乐播放器
- Android开发做一个简单的音乐播放器
- 使用绑定服务实现一个简单的音乐播放器
- 服务与多线程-简单音乐播放器
- 一个简单的音乐播放器
- 一个简单的Android音乐播放器
- 一个简单的音乐播放器
- 自制一个简单的音乐播放器
- 简单音乐播放器
- 简单音乐播放器
- 简单音乐播放器
- 简单~音乐播放器
- 自己做的一个动漫风音乐播放器
- Android开发:服务与多线程--简单音乐播放器
- Android Studio:服务与多线程--简单音乐播放器
- android一个很简单很简单的音乐播放器
- 一个转角--->程序猿
- Qt之retranslateUi
- LintCode 171 乱序字符串
- 互联网微服务API应用编码规范
- 实训第四天之ssh之web.xml
- 安卓用服务做一个简单音乐播放器
- Cannot load vendor library [libmysql.dll or libmysqld.dll]. 找不到指定的模块
- CSS3实现鼠标移动到图片上图片变大(缓慢变大,有过渡效果,放大的过程是有动画过渡的,这个过渡的时间可以自定义)
- Spring-Cloud-Gateway 源码解析 —— 路由(2.4)之 Kotlin 自定义 RouteLocator
- React4 事件处理
- 动态规划之区间DP专题
- 【bzoj 1069】最大土地面积(旋转卡壳)
- spark的安装和使用
- CSS浮动(float,clear)通俗讲解