【android开发-22】android中音频和视频用法详解
1,播放音频
MediaPlayer是Android中用于播放音频和视频的类。它提供了许多方法来控制播放,例如播放、暂停、停止、释放等。下面是一个简单的MediaPlayer用法详解和参考代码例子。
首先,确保在布局文件中添加了一个MediaPlayer控件,例如:
<mediaplayer
android:id="@+id/media_player"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
然后,在Java代码中初始化MediaPlayer对象,并设置音频或视频源:
MediaPlayer mediaPlayer = new MediaPlayer();
mediaPlayer.setAudioStreamType(AudioManager.STREAM_MUSIC);
mediaPlayer.setDataSource(audioFilePath); // audioFilePath是音频文件路径
mediaPlayer.prepare();
mediaPlayer.start(); // 开始播放
如果要播放视频,可以使用类似的方法,只需将音频源更改为视频源即可。
在播放过程中,可以使用MediaPlayer对象的方法来控制播放,例如:
pause():暂停播放
start():开始播放
stop():停止播放
reset():重置播放器,清除所有状态和数据源
release():释放资源,结束播放器
seekTo():跳转到指定位置(以毫秒为单位)
getCurrentPosition():获取当前播放位置(以毫秒为单位)
getDuration():获取音频或视频总时长(以毫秒为单位)
isPlaying():判断是否正在播放音频或视频
getAudioSessionId():获取音频会话ID,用于与AudioTrack、AudioRecord等音频会话进行区分和管理。
例如,要在播放过程中暂停音频,可以使用以下代码:
if (mediaPlayer.isPlaying()) {
mediaPlayer.pause();
}
要恢复播放,可以使用以下代码:
if (!mediaPlayer.isPlaying()) {
mediaPlayer.start();
}
完整的使用代码:
import android.media.MediaPlayer;
import android.os.Bundle;
import androidx.appcompat.app.AppCompatActivity;
import android.view.View;
import android.widget.Button;
public class MediaPlayerActivity extends AppCompatActivity {
private MediaPlayer mediaPlayer;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// 获取MediaPlayer控件和按钮对象
Button playButton = findViewById(R.id.play_button);
Button stopButton = findViewById(R.id.stop_button);
// 设置按钮点击事件监听器
playButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (mediaPlayer == null) {
mediaPlayer = MediaPlayer.create(MediaPlayerActivity.this, R.raw.music_file); // 设置音频文件路径,可以从资源文件中读取或从文件中直接读取
mediaPlayer.start(); // 开始播放音频
} else {
mediaPlayer.start(); // 继续播放音频
}
}
});
stopButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (mediaPlayer != null) { // 如果MediaPlayer对象不为空,则停止播放音频并释放资源
mediaPlayer.stop(); // 停止播放音频
mediaPlayer.release(); // 释放资源,以便再次使用MediaPlayer时重新设置数据源和回调接口等参数
mediaPlayer = null; // 将MediaPlayer对象置为空,以便再次使用时重新创建对象并设置数据源和回调接口等参数
} else { // 如果MediaPlayer对象为空,则不执行任何操作,保持当前状态不变。如果需要再次播放音频,可以再次调用playButton的点击事件来创建并启动MediaPlayer对象。
2,播放视频
以下是一个简单的Android VideoView示例,它显示了如何使用VideoView播放一个视频文件。
首先,在布局文件(例如:activity_main.xml)中添加VideoView控件:
<VideoView
android:id="@+id/videoView"
android:layout_width="match_parent"
android:layout_height="match_parent" />
然后在对应的Activity中初始化VideoView并设置视频路径:
import android.os.Bundle;
import androidx.appcompat.app.AppCompatActivity;
public class MainActivity extends AppCompatActivity {
private VideoView videoView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
videoView = findViewById(R.id.videoView);
videoView.setVideoURI(Uri.parse("path/to/your/video.mp4")); // 设置视频路径,可以从资源文件中读取或从文件中直接读取
videoView.start(); // 开始播放视频
}
}
这个例子中的"path/to/your/video.mp4"需要替换为你的视频文件的实际路径。如果你的视频文件在资源文件夹的raw目录下,你可以像这样设置:videoView.setVideoURI(Uri.parse(“android.resource://your.package.name/” + R.raw.your_video))。记住,你需要将"your_video"替换为你的视频文件名(不包含扩展名)。
注意,这是一个非常基础的例子。在实际使用中,你可能需要处理更多的情况,例如错误处理、视频播放的控制(暂停、继续、停止等),以及适应不同的屏幕尺寸和分辨率。
VideoView和MediaPlayer的用法非常相似,主要有以下常用方法:
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!