http://blog.csdn.net/ggtaas/article/details/40261421
很多人问使用VideoPlayback案例,怎么实现拍摄到图片之后立即播放视频?这个Vuforia已经很好地帮我们考虑到了,在视频的load方法中可以通过传入的参数改变。
在Android中
该方法为:
publicboolean load(String filename, MEDIA_TYPE requestedType,
boolean playOnTextureImmediately, intseekPosition)
在iOS中
该方法为:
// Load a movie
- (BOOL)load:(NSString*)filename playImmediately:
(BOOL)playOnTextureImmediately fromPosition:(float)seekPosition
参数是playOnTextureImmediately
在Unity3d中
该方法为:
/// <summary>
/// Loads a local or remote movie file
/// </summary>
public bool Load(string filename, MediaType requestedType, bool playOnTextureImmediately, float seekPosition)
{
SetFilename(filename);
return videoPlayerLoad(mFilename, (int) requestedType, playOnTextureImmediately, seekPosition);
}
修改:
在Android中:
在VideoPlaybackRender.java类中onSurfaceCreated方法中:
if (mLoadRequested[i])
{
mVideoPlayerHelper[i].load(mMovieName[i],
mCanRequestType[i],mShouldPlayImmediately[i],
mSeekPosition[i]);
mLoadRequested[i] = false;
}
将这个传入的参数设置为true即可。
在iOS中:
同样也是在OpenGL渲染类中实现。
VideoPlaybackEAGLView.mm类中prepare方法中,
if (NO == [player load:filename playImmediately:NO fromPosition:videoPlaybackTime[i]]) {
NSLog(@"Failed to load media");
}
将playImmediately设置成YES即可。
在unity3d中:
修改视频渲染类VideoPlaybackBehaviour中,
// Load the video
if (mVideoPlayer.Load(m_path, mMediaType, false, 0) == false)
{
Debug.Log("Could not load video '" + m_path + "' for media type " + mMediaType);
HandleStateChange(VideoPlayerHelper.MediaState.ERROR);
this.enabled = false;
return;
}
将mVideoPlayer.Load(m_path, mMediaType, false, 0)这第三个参数修改为true。