接口说明
接口名 |
功能描述 |
---|---|
Player(Context context) |
创建Player实例。 |
setSource(Source source) |
设置媒体源。 |
prepare() |
准备播放。 |
play() |
开始播放。 |
pause() |
暂停播放。 |
stop() |
停止播放。 |
rewindTo(long microseconds) |
拖拽播放。 |
setVolume(float volume) |
调节播放音量。 |
setVideoSurface(Surface surface) |
设置视频播放的窗口。 |
enableSingleLooping(boolean looping) |
设置为单曲循环。 |
isSingleLooping() |
检查是否单曲循环播放。 |
isNowPlaying() |
检查是否播放。 |
getCurrentTime() |
获取当前播放位置。 |
getDuration() |
获取媒体文件总时长。 |
getVideoWidth() |
获取视频宽度。 |
getVideoHeight() |
获取视频高度。 |
setPlaybackSpeed(float speed) |
设置播放速度。 |
getPlaybackSpeed() |
获取播放速度。 |
setAudioStreamType(int type) |
设置音频类型。 |
getAudioStreamType() |
获取音频类型。 |
setNextPlayer(Player next) |
设置当前播放结束后的下一个播放器。 |
reset() |
重置播放器。 |
release() |
释放播放资源。 |
setPlayerCallback(IPlayerCallback callback) |
注册回调,接收播放器的事件通知或异常通知。 |
开发步骤
- 创建Player实例,可调用Player(Context context),创建本地播放器,用于在本设备播放。
- 构造数据源对象,并调用Player实例的setSource(Source source)方法,设置媒体源,代码示例如下:
private Context context = this;
private HiLogLabel TAG = new HiLogLabel(HiLog.DEBUG, 0xD000500, “MainAblityTest”);
Player player = new Player(context);
File file = new File(“/data/data/xxxx/files/test_audio.mp4”); // 根据实际情况设置文件路径
FileInputStream in = new FileInputStream(file);
FileDescriptor fd = in.getFD(); // 从输入流获取FD对象
Source source = new Source(fd);
player.setSource(source);
player.prepare();
player.setPlayerCallback(new Callback());
player.play();
player.stop(); - 调用prepare(),准备播放。
- (可选)构造IPlayerCallback,通过IPlayerCallback,可在相应的回调函数中响应准备完毕、播放结束等事件。代码示例如下:
public class Callback implements Player.IPlayerCallback {
@Override
public void onPrepared() {
HiLog.info(TAG, “Player is now prepared,and ready to play”);
}@Override
public void onMessage(int i, int i1) {}
@Override
public void onError(int errorType, int errorCode) {
HiLog.error(TAG, “PlayerCallback onError errorType: %{public}d, errorCode: %{public}d”, errorType, errorCode);
}@Override
public void onResolutionChanged(int i, int i1) {}
@Override
public void onPlayBackComplete() {
HiLog.info(TAG, “PlayerCallback onPlayBackComplete”);}
@Override
public void onRewindToComplete() {}
@Override
public void onBufferingChange(int i) {}
@Override
public void onNewTimedMetaData(Player.MediaTimedMetaData mediaTimedMetaData) {}
@Override
public void onMediaTimeIncontinuity(Player.MediaTimeInfo mediaTimeInfo) {}
} - 调用play()方法,开始播放。
- (可选)调用pause()方法和play()方法,可以实现暂停和恢复播放。
- (可选)调用rewindTo(long microseconds)方法实现播放中的拖拽功能。
- (可选)调用getDuration()方法和getCurrentTime()方法,可以实现获取总播放时长以及当前播放位置功能。
- 调用 stop()方法停止播放。
- 播放结束后,调用release()释放资源。