后台服务播放器
来源:互联网 发布:android电商app源码 编辑:程序博客网 时间:2024/06/05 00:40
这个播放器主要利用service组件实现的后台播放。
点“播放”音乐开始播放,点“暂停”音乐暂停并可以再点击“播放”时继续播放音乐,点“停止”音乐停止并在点“播放”时重新播放音乐,点“退出”音乐停止并退出当前页面。
需要先在res目录下新建一个文件raw文件(其他文件名可能会出错),然后在那目录下放好音乐。
响应按键并传递信息的java代码
package com.example.mp3_zzl;import android.os.Bundle;import android.app.Activity;import android.content.Intent;import android.view.Menu;import android.view.View;public class MainActivity extends Activity {@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);}public void click(View zzl){Intent serviceIntent=new Intent(MainActivity.this, mp3.class);int fvk=-1;switch (zzl.getId()) {case R.id.btn_start:fvk=1;break;case R.id.btn_pause:fvk=2;break;case R.id.btn_stop:fvk=3;break;case R.id.btn_exit:fvk=4;stopService(serviceIntent);MainActivity.this.finish();break;default:break;}Bundle bundle=new Bundle(); //new一个bundle 相当于新建一个袋子bundle.putInt("msg", fvk);//把响应按钮相应的值放入bundleserviceIntent.putExtras(bundle);//把袋子bundle放入适配器serviceIntentstartService(serviceIntent);//启动service后台服务组件}@Overridepublic boolean onCreateOptionsMenu(Menu menu) {// Inflate the menu; this adds items to the action bar if it is present.getMenuInflater().inflate(R.menu.main, menu);return true;}}
package com.example.mp3_zzl;import java.io.IOException;import android.app.Service;import android.content.Intent;import android.media.MediaPlayer;import android.os.Bundle;import android.os.IBinder;public class mp3 extends Service {private MediaPlayer mp;@Overridepublic void onCreate() {// TODO 自动生成的方法存根if(mp==null){mp=mp.create(mp3.this, R.raw.abc);mp.setLooping(false); //不重复播放歌曲}super.onCreate();}@Overridepublic int onStartCommand(Intent intent, int flags, int startId) {// TODO 自动生成的方法存根Bundle bundle=intent.getExtras();int fvk=bundle.getInt("msg");switch (fvk) {case 1:play();break;case 2:pause();break;case 3:stop();break;default:break;}return super.onStartCommand(intent, flags, startId);}@Overridepublic IBinder onBind(Intent arg0) {// TODO 自动生成的方法存根return null;}@Overridepublic void onDestroy() {// TODO 自动生成的方法存根if (mp!=null){mp.stop();mp.release(); //释放资源}super.onDestroy();}private void play() {if(!mp.isPlaying()){mp.start();}}private void pause() {if(mp!=null&&mp.isPlaying()){mp.pause();}}private void stop(){if(mp!=null){mp.stop();mp=mp.create(mp3.this, R.raw.abc); //stop()类调用以后整个生命周期就停止,要从新加载MP3文件才能播放
}}}
1:重点利用好onCreate(),onStart(),onDestroy()。
2:写程序时重点思考如何实现自己想要的功能和操作。
0 0
- 后台服务播放器
- Android-Service (基本知识,生命周期,实例-startService 启动的服务音乐播放器后台服务播放)
- Android-Service (基本知识,生命周期,实例-startService 启动的服务音乐播放器后台服务播放)
- 音乐播放器:添加了广播和后台服务、通知
- 基于service服务后台运行的music播放器
- hunterliy小作品之 HunterMusic音乐播放器(Day2-后台播放服务实现)
- 实现音乐播放器后台Service服务一直存在的解决思路
- 实现音乐播放器后台Service服务一直存在的解决思路
- ios实现音乐播放器后台播放
- Service后台服务控制音乐的播放暂停和停止,播放完自动播放下一曲
- 绑定服务后台播放音频的简单示例
- 后台播放
- 后台播放
- 使用Vitamio打造自己的Android万能播放器(11)—— 本地扫描后台服务
- 使用Vitamio打造自己的Android万能播放器(11)—— 本地扫描后台服务
- 服务版音乐播放器
- iOS音乐播放器的后台播放和远程控制
- ios-音乐播放器-(3)后台播放
- Python 变量作用域问题 函数名.变量名
- android samples 之 Snake分析
- TortoiseSVN中Branching和Merging实践
- 腾达N300路由器无线网络,XP电脑连接速度很慢
- 54张手绘PPT看懂Google是如何运作的
- 后台服务播放器
- 缅怀惨痛的处女面
- Is functional analysis relevant to machine learning?
- Java之回溯法实现01背包
- JMX教程整合
- instancetype 和 id 的区别
- 拓扑排序
- 浅拷贝和深拷贝
- gcc 4.8.2编译时找不到头文件curses.h问题的解决