手机影音11--音乐播放页面

1.创建服务和创建对应的aidl文件

1_创建服务MusicPlayerService.java,基于此类改成IMusicPlayerService.aidl,名字一定要改

在Android studio创建aidl文件,识别时要编译一下

public class MusicPlayerService extends Service {

  @Override
  public void onCreate() {
     super.onCreate();
  }
     /**
   * 根据位置打开一个音频并且播放
  *
  * @param position
  */
  public void openAudio(int position) {

  /**
   * 开始播放音频
  */
  public void start() {
  }
  /**
   * 暂停
  */
  public void pause() {
  }

  /**
   * 得到歌曲的名称
  */
  public String getAudioName() {
     return "";
  }
  /**
   * 得到歌曲演唱者的名字
  */
  public String getArtistName() {
     return "";
  }
  /**
   * 得到歌曲的当前播放进度
  */
  public int getCurrentPosition() {
     return 0;
  }
  /**
   * 得到歌曲的当前总进度
  */
  public int getDuration() {
     return 0;
  }
  /**
   * 播放下一首歌曲
  */
  public void next() {
  }
  /**
   * 播放上一首歌曲
  */
  public void pre() {
  }
  /**
   * 得到播放模式
  */
  public int getPlayMode() {
     return 0;
  }
  /**
   * 设置播放模式
  */
  public void setPlayMode(int mode) {
  }
  @Override
  public IBinder onBind(Intent intent) {
     return stub;
  }
  IMusicPlayerService.Stubstub = new IMusicPlayerService.Stub() {
     MusicPlayerServiceservice = MusicPlayerService.this;
     @Override
     public void stop() throws RemoteException {
       service.stop();
     }
     @Override
     public void start() throws RemoteException {
       service.start();
     }
     @Override
     public void setPlayMode(int mode) throws RemoteException {
       service.setPlayMode(mode);
     }
     @Override
     public void pre() throws RemoteException {
       service.pre();
     }
     @Override
     public void pause() throws RemoteException {
       service.pause();
     }
     @Override
     public void openAudio(int position) throws RemoteException {
       service.openAudio(position);
     }
     @Override
     public void next() throws RemoteException {
       service.next();
     }
     @Override
     public int getPlayMode() throws RemoteException {
       // TODO Auto-generated method stub
       return service.getPlayMode();
     }
     @Override
     public int getDuration() throws RemoteException {
       // TODO Auto-generated method stub
       return service.getDuration();
     }
     @Override
     public int getCurrentPosition() throws RemoteException {
       // TODO Auto-generated method stub
       return service.getCurrentPosition();
     }
     @Override
     public String getAudioName() throws RemoteException {
       // TODO Auto-generated method stub
       return service.getAudioName();
     }
     @Override
     public String getArtistName() throws RemoteException {
       // TODO Auto-generated method stub
       return service.getArtistName();
     }
  };
}

2_AIDL文件把方法体去掉

package com.atguigu.mobileplayer.audio;
interface IMusicPlayerService {

  /**
   * 根据位置打开一个音频并且播放
   * @param position
   */
   void openAudio(int position);
  /**
   * 开始播放音频
   */
   void start();

  /**
   * 暂停
   */
   void pause();
  /**
   * 停止
   */
   void stop();
  /**
   * 得到歌曲的名称
   */
     String getAudioName();
   /**
   * 得到歌曲演唱者的名字
   */
     String getArtistName();
   /**
   * 得到歌曲的当前播放进度
   */
     int getCurrentPosition();
   /**
   * 得到歌曲的当前总进度
   */
     int getDuration();

   /**
   * 播放下一首歌曲
   */
     void next();
   /**
      * 播放上一首歌曲
     */
     voidpre();
   /**
      * 得到播放模式
     */
     int getPlayMode();
   /**
      * 设置播放模式
     */
     void setPlayMode(int mode);

}

  

  

时间: 2024-11-02 23:34:04

手机影音11--音乐播放页面的相关文章

手机影音第六天 自定义播放器页面的实现(按钮暂时未监听)

目前进度的项目源代码托管在里码云上,地址如下: https://git.oschina.net/joy_yuan/MobilePlayer 感兴趣的可以去下载看看,多多支持 这次就摒弃了系统自带的控制栏,即之前写的通过系统自带的控制栏 videoview.setMediaController(new MediaController(this)); 转而自己写控制器布局,实际截图如下: 效果图: 一.Activity的声明周期重温与横竖屏切换时的问题 有2个页面,A页面,B页面,下面括号里的A,B

手机影音4--视频播放器的基本功能

1.MediaPlayer和VideoView介绍 Android 系统中提供开发者开发多媒体应用(音视频方面) 一,MediaPlayer, 解码的是底层,MediaPlayer负责和底层打交道,封装了很多方法 start,pause,stop ,播放视频的类 这个MediaPlayer可以播放本地 和网络 的音视频 播放网络资源的时候,要联网权限 1,执行流程 2.视频支持的格式 mp4,3gp,.m3u8 直接用pc的.mp4文件 二,VideoView 显示视频,继承SurfaceVie

手机影音9--视频播放器的高级功能(2)

1.监听播放出错 class MyOnErrorListener implements MediaPlayer.OnErrorListener { @Override public boolean onError(MediaPlayer mp, int what, int extra) { // Toast.makeText(SystemVideoPlayer.this, "播放出错了哦", Toast.LENGTH_SHORT).show(); //1.播放的视频格式不支持--跳转到

手机影音8--视频播放器的高级功能(1)

1.让其他软件能调起自己写的播放器 1.在功能清单文件添加下面的意图 <intent-filter> <action android:name="android.intent.action.VIEW" /> <category android:name="android.intent.category.DEFAULT" /> <category android:name="android.intent.catego

手机影音7--视频播放器的基本功能(4)

1.用AudioManager调声音 1_得到当前音量和最大音量 //关于设置音量 private int currentVolume;//当前音量值 private int currentMaxVolume;//当前最大音量 private AudioManager am; am = (AudioManager) getSystemService(AUDIO_SERVICE); currentVolume = am.getStreamVolume(AudioManager.STREAM_MUS

手机影音6--视频播放器的基本功能(3)

1.自定义VideoView 1_自定义VideoView-增加设置视频大小方法 public class VideoView extends android.widget.VideoView { /** * Android系统在更加xml布局找这个类,并且实例化的时候,用该构造方法实例化 * * @param context * @param attrs */ public VideoView(Context context, AttributeSet attrs) { super(conte

安卓音乐播放器中歌词同步问题

音乐文件是.lrc格式的,以一首歌曲为例, [ti:回忆的沙漏][ar:邓紫棋][al:G.E.M.][by:][offset:0][00:02.50]回忆的沙漏 - G.E.M. 邓紫棋[00:04.62]词:庭竹[00:05.72]曲:G.E.M.[00:15.03]拼图一片片失落[00:18.56]像枫叶的冷漠[00:21.87]墙上的钟[00:23.79]默默数着寂寞[00:29.30]咖啡飘散过香味[00:33.06]剩苦涩陪着我[00:36.68]想念的心[00:39.44]埋葬我在

Android获取第三方音乐播放器的音乐信息

最近在做Android手机获取第三方音乐播放器的音乐信息.一开始头疼的很,采集第三方的信息太难了,后面看了一遍博文是关于怎么监听系统的音乐播放信息,发现在播放下一首音乐的时候会发送广播,广播会包含下一首信息. Android系统的音乐播放器会发送: com.android.music.metachanged 那怎么获取第三方的音乐信息? 先反编译了QQ音乐的Apk, 找到它关于player的service,发现里面用的就是"com.android.music.metachaged" 接

手机影音第十四天,本地音乐列表的展示与播放(利用视频播放的布局)

代码已经托管到码云,有兴趣的小伙伴可以下载看看 https://git.oschina.net/joy_yuan/MobilePlayer 效果图: Android系统提供了MediaScanner,MediaProvider,MediaStore等接口,并且提供了一套数据库表格,通过Content Provider的方式提供给用户.当手机开机或者有SD卡插拔等事件发生时,系统将会自动扫描SD卡和手机内存上的媒体文件,如audio,video,图片等,将相应的信息放到定义好的数据库表格中.在这个