Android 入门宝典 - MediaPlayer & VideoView

MediaPlayer

https://developer.android.com/reference/android/media/MediaPlayer

mediaplayer_state_diagram

reset(); // 设置到 Idle(空闲)状态,是未 setDataSource 的状态

setDataSource(String path); // 指定音频文件的路径,设置到 Initialized(初始化)状态——准备状态之前,可以通过 prepare() 或 prepareAsync() 使用同步或异步方式准备,涉及网络资源常用异步准备

prepare(); // 让 MediaPlayer 进入到 prepare(准备)状态

setLooping(true); // 设置循环,在准备状态后设置,在播放结束后进入 playbackComplete 状态,会通
过 start() 方法进入 started 状态,不会通过 onComplete() 执行设置的方法

start(); // 进入启动状态

getDuration() // 获得播放长度,整形,在 prepare 状态后才能使用

isPlaying() // 判断是否在播放,在 prepare 状态后才能使用

getCurrentPosition() // 得到当前播放位置,整形,在 prepare 状态后才能使用

pause(); // 暂停播放,可以通过 start() 方法再次进入 started 状态或使用 stop() 进入 stop 状态

stop(); // 停止状态,可以通过 prepare() 进入准备状态

setOnCompletionListener(this); // 当 setLooping(false),播放结束将回调 onComplete() 方法,之后进入 playbackComplete 状态

release(); // 进入 end 状态,MediaPlayer 不能再使用

参考:MediaPlayer详解和使用
Android MediaPlayer类详解

VideoView

resume:重新播放,与 MediaPlayer 的 reset 相同
suspend:释放,与 MediaPlayer 的 release 相同

音量修改

https://developer.android.com/guide/topics/media-apps/volume-and-earphones

导航音频是一种音频流,音乐是一种音频流,是不一样的。我记得的音乐是类型是: AudioManager.STREAM_MUSIC(还有STREAM_VOICE_CALL通话音频,其音量大小根据声音更改、STREAM_RING铃声、STREAM_ALARM警报、STREAM_SYSTEM系统声、STREAM_MUTE静音、STREAM_UNMUTE非静音……)

通过 AudioManager 可以控制各个音频流;

获取 AudioManager:

AudioManager mAudioManager = (AudioManager) getSystemService(Context.AUDIO_SERVICE);

获取最大音量值、当前音量值:

int maxVolume = mAudioManager.getStreamMaxVolume(AudioManager.STREAM_MUSIC);
int currentVolume = audioManager.getStreamVolume(AudioManager.STREAM_MUSIC);

设置媒体音量为最大值,当然也可以设置媒体音量为其他给定的值:

mAudioManager.setStreamVolume(AudioManager.STREAM_MUSIC, maxVolume, 0);

按系统设置加大音量、降低音量,并显示 UI:

mAudioManager.adjustStreamVolume(AudioManager.STREAM_MUSIC, AudioManager.ADJUST_RAISE, AudioManager.FLAG_SHOW_UI);
mAudioManager.adjustStreamVolume(AudioManager.STREAM_MUSIC, AudioManager.ADJUST_LOWER, AudioManager.FLAG_SHOW_UI);

Android音频开发(1):基础知识

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值