音 + 视频播放

news/2024/11/2 0:23:22/

PART_A 音频

一、简述

  • Android提供了MediaPlayer类来实现音频的播放.

  • MediaPlayer类中提供了如下方法,能够很好的控制播放.

    方法作用
    setDataSource()设置音频文件的位置.
    prepare()准备.
    start()开始或继续.
    pause()暂停.
    reset()重置MediaPlayer状态至开始创建时刻.
    seekTo()从指定位置开始播放.
    stop()停止,MediaPlayer对象无法继续播放.
    release()释放MediaPlayer对象的相关资源.
    isPlaying()判断是否正在播放.
    getDuration()获取音频时长.

二、代码

  • xml布局中设置三个Button(分别控制播放、暂停、停止).
<Buttonandroid:id="@+id/bt_play"android:layout_width="match_parent"android:layout_height="wrap_content"android:text="play" /><Buttonandroid:id="@+id/bt_pause"android:layout_width="match_parent"android:layout_height="wrap_content"android:text="pause" /><Buttonandroid:id="@+id/bt_stop"android:layout_width="match_parent"android:layout_height="wrap_content"android:text="stop" />
  • 代码中.
private Button[] bts = new Button[3];
private MediaPlayer player = new MediaPlayer(); // 初始化播放器@Override
protected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_music);bts[0] = (Button) findViewById(R.id.bt_play);bts[1] = (Button) findViewById(R.id.bt_pause);bts[2] = (Button) findViewById(R.id.bt_stop);for (int i = 0; i < bts.length; i++) {bts[i].setOnClickListener(this);}initPlayer(); // 初始化音乐路径
}private void initPlayer() {try {File file = new File(Environment.getExternalStorageDirectory(), "test.mp3");player.setDataSource(file.getPath()); // 指定音频文件的路径player.prepare(); // 让MediaPlayer进入到准备状态} catch (Exception e) {e.printStackTrace();}
}@Override
public void onClick(View v) {switch (v.getId()) {case R.id.bt_play:if (!player.isPlaying()) {player.start(); // 开始}break;case R.id.bt_pause:if (player.isPlaying()) {player.pause(); // 暂停}break;case R.id.bt_stop:if (player.isPlaying()) {player.reset(); // 停止initPlayer();}}
}@Override
protected void onDestroy() {super.onDestroy();if (player != null) {player.stop();player.release(); // Activity销毁时释放播放器资源}
}
  • 当然,别忘了添加权限.
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>

> PART_B 视频

一、简述

  • Android提供了VideoView类来实现视频的播放.

  • VideoView类中提供了如下方法,能够很好的控制播放.

    方法作用
    setVideoPath()设置视频文件的位置.
    start()开始或继续.
    pause()暂停.
    resume()从头播放.
    seekTo()从指定位置开始播放.
    isPlaying()判断是否正在播放.
    getDuration()获取视频时长.

代码

  • xml布局中设置一个VideoView控件和三个Button(分别控制播放、暂停、停止).
<Buttonandroid:id="@+id/bt_play"android:layout_width="match_parent"android:layout_height="wrap_content"android:text="play" /><Buttonandroid:id="@+id/bt_pause"android:layout_width="match_parent"android:layout_height="wrap_content"android:text="pause" /><Buttonandroid:id="@+id/bt_resume"android:layout_width="match_parent"android:layout_height="wrap_content"android:text="replay" /><VideoViewandroid:id="@+id/vv_video"android:layout_width="match_parent"android:layout_height="wrap_content" />
  • 代码中
private Button[] bts = new Button[3];
private VideoView vv_video;@Override
protected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_video);vv_video = (VideoView) findViewById(R.id.vv_video);bts[0] = (Button) findViewById(R.id.bt_play);bts[1] = (Button) findViewById(R.id.bt_pause);bts[2] = (Button) findViewById(R.id.bt_resume);for (int i = 0; i < bts.length; i++) {bts[i].setOnClickListener(this);}initPlayer();
}private void initPlayer() {File file = new File(Environment.getExternalStorageDirectory(), "test.mp4");vv_video.setVideoPath(file.getPath()); // 指定视频文件的路径
}@Override
public void onClick(View v) {switch (v.getId()) {case R.id.bt_play:if (!vv_video.isPlaying()) {vv_video.start(); // 开始}break;case R.id.bt_pause:if (vv_video.isPlaying()) {vv_video.pause(); // 暂停}break;case R.id.bt_resume:if (vv_video.isPlaying()) {vv_video.resume(); // 重播}break;}
}@Override
protected void onDestroy() {super.onDestroy();if (vv_video != null) {vv_video.suspend(); // Activity销毁时释放播放器资源}
}
  • 当然,与上面播放音频的一样,需要读取SD卡权限.

PART_C 补充

  • 上述使用的是Android系统提供的API,功能及支持的文件格式相当有限.
  • 具体想实现多媒体文件播放这块请参考Vitamio-自行百度.官网打不开,你懂得.

http://www.ppmy.cn/news/132319.html

相关文章

视频播放video

使用video html <video class"video" poster"../imgs/banner01.png" controls"controls"><source src"../imgs/shi.mp4" type"video/mp4"></video>css .video{width: 100%;height: 3rem;object-fit: fil…

网页视频播放器/视频播放插件

网页视频播放器/视频播放插件 支持的音视频格式: .swf、.wmv、.asf、.wma、.mp3、.asx、.mid、.midi、.rm、.ra、.rmvb、.mp4、.mov、.avi、.wav、.ram、.mpg、.mpeg、flv; 下载地址 下载&#xff1a; 站长下载 Admin5下载 使用方法&#xff1a; 步骤1&#xff1a;网站中引用…

投影仪家用推荐最新?投影仪便宜又好用的

最近有很多人在后台让我推荐家用投影仪&#xff0c;趁着周末在家的功夫&#xff0c;总结了以下内容&#xff0c;希望能对大家有所帮助。 首先&#xff0c;如何选择一台投影仪&#xff1f;具体看什么配置参数呢&#xff1f; 如果稍微了解过这个领域&#xff0c;都知道不能选择太…

智能家居DIY创意之智能灯泡

一、什么是智能灯 传统的灯泡是通过手动打开和关闭开关来工作。有时&#xff0c;它们可以通过声控、触控、红外等方式进行控制&#xff0c;或者带有调光开关&#xff0c;让用户调暗或调亮灯光。 智能灯泡内置有芯片和通信模块&#xff0c;可与手机、家庭智能助手、或其他智能…

智能家居创意DIY之智能灯泡

一、什么是智能灯 传统的灯泡是通过手动打开和关闭开关来工作。有时&#xff0c;它们可以通过声控、触控、红外等方式进行控制&#xff0c;或者带有调光开关&#xff0c;让用户调暗或调亮灯光。 智能灯泡内置有芯片和通信模块&#xff0c;可与手机、家庭智能助手、或其他智能…

智能灯泡灯一Homekit智能家居

传统的灯泡是通过手动打开和关闭开关来工作。有时&#xff0c;它们可以通过声控、触控、红外等方式进行控制&#xff0c;或者带有调光开关&#xff0c;让用户调暗或调亮灯光。 智能灯泡内置有芯片和通信模块&#xff0c;可与手机、家庭智能助手、或其他智能硬件进行通信&#…

白天看投影仪哪个牌子最好?家用投影仪推荐一下哪款比较好

在搞清楚白天投影仪要用多少流明之前&#xff0c;需要明确一下流明是什么?所谓的流明&#xff0c;简单来说&#xff0c;就是亮度&#xff0c;流明达到一定的值以上&#xff0c;就算是白天强光的影响下&#xff0c;也能看的清楚。 流明与电功率成正比&#xff0c;也就意味着流明…

家用投影仪推荐一下哪款比较好,10大国产品牌推荐建议一定要看

支持国货现在已然成为国人绝对支持的行为之一&#xff0c;对于像华为、鸿星尔克等国产国货出现火爆的场景&#xff0c;仍然历历在目&#xff01;现在国产国货已经影响着世界&#xff0c;国际友人都爱上了中国造&#xff01;今天小编分享新国货&#xff0c;十大国产家用投影仪品…