MediaPlayer( 媒体播放器),TelephonyManager(电话管理类),MediaRecorder(媒体录音机)
2016-07-21 09:51
417 查看
媒体播放器 MediaPlayer
媒体播放器类可用于控制回放的音频/视频文件和流。方法:
setDataSource(String path);// 设置数据源(文件路径或http / rtsp URL)使用。 setLooping(boolean looping);// 设置播放器循环和非循环。 public void setOnCompletionListener(OnCompletionListener listener){ mOnCompletionListener = listener;} // 注册一个回调结束时调用一个媒体源 seekTo(int msec); // 寻求指定的时间位置。 prepare(); // 准备播放的播放器,同步。 stop(); // 停止播放播放后停止或暂停。 release(); // 释放资源与媒体播放器对象相关联。 start(); // 启动或恢复回放。 pause(); // 暂停播放。调用start()恢复。 isPlaying(); // 检查是否媒体播放器播放。
用cmd命令行把mp3放入文件里:
adb push 歌曲全路径 /mnt/sdcard/j.mp3
电话管理类 TelephonyManager:
提供电话服务的信息设备。应用程序可以使用这个类中的方法确定电话服务和状态,以及访问一些类型的用户信息。应用程序也可以注册一个侦听程序来接收通知的电话状态改变。public class PhoneService extends Service { private TelephonyManager tm; private MyPhoneListener listener; private MediaRecorder mr; @Nullable @Override public IBinder onBind(Intent intent) { return null; } @Override public void onCreate() { super.onCreate(); // 初始化 电话和录音 tm = (TelephonyManager) getSystemService(TELEPHONY_SERVICE); listener = new MyPhoneListener(); // 注册一个侦听器对象来接收通知的变化在指定电话。 tm.listen(listener, PhoneStateListener.LISTEN_CALL_STATE); } // 监听手机状态 private class MyPhoneListener extends PhoneStateListener { @Override public void onCallStateChanged(int state, String incomingNumber) { super.onCallStateChanged(state, incomingNumber); switch (state) { // 没电话呼叫,闲置状态 case TelephonyManager.CALL_STATE_IDLE: if (mr != null) { System.out.println("停止录音"); stopRecorder(); } break; // 响铃状态 case TelephonyManager.CALL_STATE_RINGING: break; // 接听状态 case TelephonyManager.CALL_STATE_OFFHOOK: System.out.println("通话状态,开启录音"); startRecorder(); break; } } } @Override public void onDestroy() { super.onDestroy(); // 电话挂掉 tm.listen(listener, PhoneStateListener.LISTEN_NONE); }
媒体录音机 MediaRecorder
用于记录音频和视频。// 录音开始 private void startRecorder() { mr = new MediaRecorder(); // 开启麦克风 mr.setAudioSource(MediaRecorder.AudioSource.MIC); // 录音格式 mr.setOutputFormat(MediaRecorder.OutputFormat.THREE_GPP); // 存储起来 mr.setOutputFile("/mnt/sdcard/" + SystemClock.uptimeMillis() + ".3gp"); // 音频解码 mr.setAudioEncoder(MediaRecorder.AudioEncoder.AMR_NB); try { // 准备 mr.prepare(); } catch (IOException e) { System.out.println("prepare"+"失败"); } // 开始 mr.start(); } // 录音停止 private void stopRecorder() { mr.stop(); mr.release(); mr = null; } }
手机窃听录音,需开启权限
<uses-permission android:name="android.permission.READ_PHONE_STATE" /> <!-- 读取手机状态 --> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> <!-- 写入外部存储 --> <uses-permission android:name="android.permission.RECORD_AUDIO" /> <!-- 记录音频 -->
相关文章推荐
- Android实际音乐播放的代码
- Android开发之系统性分析MediaPlayer终结版
- Android 实现录音和监听声音大小实现话筒动画效果
- android MediaRecorder录制视频(可暂停、继续)
- 【Android】 从头搭建视频播放器(1)——概述
- 【Android】 从头搭建视频播放器(2)——SystemMediaPlayerImpl
- 【Android】 从头搭建视频播放器(3)——手势检测 & 控制
- 【Android】 从头搭建视频播放器(4)——屏幕旋转处理
- 【Android】 从头搭建视频播放器(5)——将所有放在一起
- android中常见声音操作方式(Ringtone,SoundPool,MediaPlayer)小结
- android录音和播放录音
- Android开发笔记之SeekBar 时间的显示 快进快退 Mediaplayer
- android开发 java.lang.IllegalStateException at android.media.MediaPlayer._prepare(Native Method)
- Android中自定义摄像机MediaRecorder录视频
- 视频录制-MediaRecorder
- 音频的两种录制方式-AudioRecord,MediaRecorder的使用及播放
- 解析歌词
- Android MediaRecorder 实现录制无声视频 禁止录入声音
- Android开发---MediaPlayer简单音乐播放器
- 一些 DOM 对象方法