- Home /
How to play video on iOS (not on full screen)
I need to play video on iOS but not on the full screen. I have been searching the Google but I found that we can play just full screen video but can not play a video as a texture (movie Texture) of an object as in desktop games. See the link: http://docs.unity3d.com/Documentation/Manual/VideoFiles.html
I have found one solution for it. I am using "Maya" software. And made a plane in which I added a texture which comprise of image sequence. and am able to play it by using script "AnimatedTextureUV.js" .
http://wiki.unity3d.com/index.php?title=Animating_Tiled_texture
It plays the image sequence like a sprite sheet.But my video is stretched at:
var uvAnimationTileX = 24;
var uvAnimationTileY = 1;
and if I make
var uvAnimationTileX = 1;
var uvAnimationTileY = 1;
it shows image in proper ratio and with one tile but do not play image sequence. I don't know about UV very much. Except uvAnimationTileX <=1 && uvAnimationTileY <=1 it works. But obviously it would show many tiles at a single plane. anybody please help me. Thanks :-)
the script i am using is:
var uvAnimationTileX = 24; //Here you can place the number of columns of your sheet.
//The above sheet has 24
var uvAnimationTileY = 1; //Here you can place the number of rows of your sheet.
//The above sheet has 1
var framesPerSecond = 10.0;
function Update () {
// Calculate index
var index : int = Time.time * framesPerSecond;
// repeat when exhausting all frames
index = index % (uvAnimationTileX * uvAnimationTileY);
// Size of every tile
var size = Vector2 (1.0 / uvAnimationTileX, 1.0 / uvAnimationTileY);
// split into horizontal and vertical index
var uIndex = index % uvAnimationTileX;
var vIndex = index / uvAnimationTileX;
// build offset
// v coordinate is the bottom of the image in opengl so we need to invert.
var offset = Vector2 (uIndex * size.x, 1.0 - size.y - vIndex * size.y);
renderer.material.SetTextureOffset ("_MainTex", offset);
renderer.material.SetTextureScale ("_MainTex", size);
}
If you have Unity Pro version then you can roll your own movie texture plugin (what I did) or use one from the asset store, but plugins are pro only.
Answer by Anxo · Jan 14, 2013 at 02:29 PM
Movie Textures are not supported on iOS. Instead, full-screen streaming playback is provided using Handheld.PlayFullScreenMovie.
from the Unity Documentation
I know, that is why I am using image sequence ins$$anonymous$$d of video.But I still stuck on playing image sequence. and I can-not use GUIsprite because there are up-to 300 images for a video.
Answer by jerry678 · Jan 12, 2014 at 06:57 AM
As per unity documentation you can only play video in iOS only via quick time player. until you use third party plugins or sdk
Answer by u3dxt · Jan 16, 2014 at 07:52 PM
Our plugin U3DXT iOS SDK, among other things, allows you to play videos in "windows" mode. You do not need Unity Pro.
We open the full MediaPlayer framework, but what you are looking for is just the MPMoviePlayerController and setting the bounds. You can do this from Unity3D using C#, Javascript, or Boo without touching XCode.
Your answer
Follow this Question
Related Questions
Playing from a specific point using Handheld.PlayFullScreenMovie 0 Answers
How to play a video on iPhone without using the native iOS video player? 0 Answers
Trouble getting Google GVRVideoPlayer to Implement in Unity 5.6.2 with Google Cardboard v1.60 0 Answers
Importing a alpha video clip for iOS 0 Answers
Importing and Playing a Video 7 Answers