android 360全景视频,【Android开发VR实战】二.播放360°全景视频(示例代码)

/**

* 载入360度全景视频

*/

private void load360Video() {

vr_video_view = (VrVideoView) findViewById(R.id.vr_video_view);

seek_bar = (SeekBar) findViewById(R.id.seek_bar);

volume_toggle = (ImageButton) findViewById(R.id.volume_toggle);

play_toggle = (ImageButton) findViewById(R.id.play_toggle);

/**设置载入设置**/

VrVideoView.Options options = new VrVideoView.Options();

options.inputType = VrVideoView.Options.TYPE_STEREO_OVER_UNDER;

/**

* 设置载入监听

*/

vr_video_view.setEventListener(new VrVideoEventListener() {

/**

* 视频播放完毕回调

*/

@Override

public void onCompletion() {

super.onCompletion();

/**播放完毕后跳转到開始又一次播放**/

vr_video_view.seekTo(0);

setIsPlay(false);

Log.d(TAG, "onCompletion()");

}

/**

* 载入每一帧视频的回调

*/

@Override

public void onNewFrame() {

super.onNewFrame();

seek_bar.setProgress((int) vr_video_view.getCurrentPosition());

Log.d(TAG, "onNewFrame()");

}

/**

* 点击VR视频回调

*/

@Override

public void onClick() {

super.onClick();

Log.d(TAG, "onClick()");

}

/**

* 载入VR视频失败回调

*@param errorMessage

*/

@Override

public void onLoadError(String errorMessage) {

super.onLoadError(errorMessage);

Log.d(TAG, "onLoadError()->errorMessage=" + errorMessage);

}

/**

* 载入VR视频成功回调

*/

@Override

public void onLoadSuccess() {

super.onLoadSuccess();

/**载入成功后设置回调**/

seek_bar.setMax((int) vr_video_view.getDuration());

Log.d(TAG, "onNewFrame()");

}

/**

* 显示模式改变回调

* 1.默认

* 2.全屏模式

* 3.VR观看模式。即横屏分屏模式

*@param newDisplayMode 模式

*/

@Override

public void onDisplayModeChanged(int newDisplayMode) {

super.onDisplayModeChanged(newDisplayMode);

Log.d(TAG, "onLoadError()->newDisplayMode=" + newDisplayMode);

}

});

try {

/**载入VR视频**/

vr_video_view.loadVideoFromAsset("congo.mp4", options);

} catch (IOException e) {

e.printStackTrace();

}

/**设置声音button点击监听**/

volume_toggle.setOnClickListener(new View.OnClickListener() {

public void onClick(View v) {

setIsMuted(!isMuted);

}

});

/**设置播放暂停button点击监听**/

play_toggle.setOnClickListener(new View.OnClickListener() {

public void onClick(View v) {

setIsPlay(!isPlay);

}

});

/**设置进度条拖动监听**/

seek_bar.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() {

/**

* 进度条拖动改变监听

*@param seekBar 拖动条

*@param progress 进度

*@param fromUser 是否是用户手动操作的

*/

@Override

public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) {

if (fromUser) {

/**调节视频进度**/

vr_video_view.seekTo(progress);

}

}

@Override

public void onStartTrackingTouch(SeekBar seekBar) {

}

@Override

public void onStopTrackingTouch(SeekBar seekBar) {

}

});

}

/**

* 设置声音开关

*

*@param isMuted 开关

*/

private void setIsMuted(boolean isMuted) {

this.isMuted = isMuted;

volume_toggle.setImageResource(isMuted ?

R.drawable.volume_off : R.drawable.volume_on);

vr_video_view.setVolume(isMuted ? 0.0f : 1.0f);

}

/**

* 设置播放暂停

*

*@param isPlay 播放暂停

*/

private void setIsPlay(boolean isPlay) {

this.isPlay = isPlay;

play_toggle.setImageResource(isPlay ?R.drawable.pause: R.drawable.play );

if(isPlay){

vr_video_view.playVideo();

}else{

vr_video_view.pauseVideo();

}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值