原文: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。