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的用法非常相似,主要有以下常用方法: