手机多媒体--音/视频播放

本文介绍了一个简单的Android应用程序,用于实现SD卡上指定音频和视频文件的播放、暂停和停止等功能。通过MediaPlayer和VideoView组件,文章详细展示了如何使用这些组件进行多媒体文件的控制。

实现SD中指定音频文件的播放、暂停、停止。
音频–>MainActivity.class:

package com.superxingyun.playautiotest;

import android.media.MediaPlayer;
import android.os.Environment;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;

import java.io.File;
import java.io.IOException;

public class MainActivity extends AppCompatActivity implements View.OnClickListener {
    private Button play,pause,stop;
    private MediaPlayer mediaPlayer = new MediaPlayer();
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        /**
         * MediaPlayer常用方法
         * 方法名                          功能描述
         * setDataSource()      设置要播放的音频文件的位置
         * prepare()            在开始播之前调用这个方法完成准备工作
         * stare()              开始或者继续播放音频
         * pause()              暂停播放音频
         * reset()              将MediaPlayer对象重置到刚刚创建的状态
         * seekTo()              从指定的位置开始播放音频
         * stop()                停止播放音频,调用这个方法后的MediaPlayer对象无法再次播放音频
         * release()             释放掉与MediaPlayer对象相关的资源
         * isPlaying()           判断当前MediaPlayer是否正在播放音频
         * getDuration()         获取载入的音频文件的时长
         */

        play = (Button) findViewById(R.id.play);
        pause = (Button) findViewById(R.id.pause);
        stop = (Button) findViewById(R.id.Stop);

        play.setOnClickListener(this);
        pause.setOnClickListener(this);
        stop.setOnClickListener(this);
        initMediaPlayer();//初始化MediaPlayer
    }

    private void initMediaPlayer() {
        try {
            File file = new File(Environment.getExternalStorageDirectory(), "music.mp3");
            mediaPlayer.setDataSource(file.getPath());//设置要播放的音频文件的位置
            mediaPlayer.prepare();//让MediaPlayer进入到准备状态
        } catch (IOException e) {
            e.printStackTrace();
        }
    }

    @Override
    public void onClick(View view) {
        switch (view.getId()) {
            case R.id.play:
                if (!mediaPlayer.isPlaying()) {
                    mediaPlayer.start();//开始播放
                }
                break;
            case R.id.pause:
                if (mediaPlayer.isPlaying()) {
                    mediaPlayer.pause();//暂停播放
                }
                break;
            case R.id.stop:
            if (mediaPlayer.isPlaying()) {
                mediaPlayer.reset();//停止播放
                initMediaPlayer();
            }
                break;
        }
    }

    @Override
    protected void onDestroy() {
        super.onDestroy();
        mediaPlayer.stop();//停止播放并且释放掉与mediaPlayer对象的相关资源
        mediaPlayer.release();
    }
}

视频–>
MainActivity.class

package com.superxingyun.playvideotest;

import android.os.Environment;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.VideoView;

import java.io.File;

public class MainActivity extends AppCompatActivity implements View.OnClickListener {
    private VideoView videoView;
    private Button play,pause,replay;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        /**
         *                  Video View
         *       方法名                     功能描述
         * setVideoPath()            设置要播放的视频文件的路径
         * start()                  开始或继续播放视频
         * pause()                  暂停播放视频
         * resume()                 将视频重头播放
         * seekTo()                  从指定的位置开始播放视频
         * isPlaying()              判断当前是否正在播放视频
         * getDuration()            获取载入的视频文件的时长
         */

        play = (Button) findViewById(R.id.play);
        pause = (Button) findViewById(R.id.pause);
        replay = (Button) findViewById(R.id.replay);
        videoView = (VideoView) findViewById(R.id.video_view);

        play.setOnClickListener(this);
        pause.setOnClickListener(this);
        replay.setOnClickListener(this);

        initVideoPath();
    }

    private void initVideoPath() {
        File file = new File(Environment.getExternalStorageDirectory(), "movie.mp4");
        videoView.setVideoPath(file.getPath());//指定视频文件的路径
    }

    @Override
    public void onClick(View view) {
        switch (view.getId()) {
            case R.id.play:
                if (!videoView.isPlaying()) {
                    videoView.start();//开始播放
                }
                break;
            case R.id.pause:
                if (videoView.isPlaying()) {
                    videoView.pause();//暂停播放
                }
                break;
            case R.id.replay:
                if (videoView.isPlaying()) {
                    videoView.resume();//重新播放
                }
                break;
        }
    }

    @Override
    protected void onDestroy() {
        super.onDestroy();
        if (videoView != null) {
            videoView.suspend();//释放资源
        }
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值