Good news ! I eventually managed to do it. In short : yes, it’s possible to change scale property of a native.newVideo() (xScale, and yScale).
So, I started from scratch, to be sure I was doing it right. And because I don’t wanna struggle too much (english is not my native language…), I’ll use some images.
Setting a native.newVideo() to full screen, for every resolutions :
What I intend to get is a video played in fullscreen, stretched so that it fills all the screen space. For every device resolutions. It’s not the best solution, since it means that part of the video will be off-screen. But in my case, it’s not a problem (you just have to produce a video with that in mind). But this can be very usefull if you’re planning to do some “cinematic transitions” in your game.
First, here is what you’ll need :

The image is used to define the final dimensions of the video (video.mov). Its size must be the same as the video, which is 1136x640 in my case, or at least, have the same format ratio. And in my case, in my config.lua file, I’m setting the scale as “letterbox”. It probably works for “zoomEven” by changing a few lines, but I haven’t tested it.
At first, I just load the image, put it at the center of the screen, and resize it so it fills the whole screen. But instead of just setting its width and height respectively to display.contentWidth and display.contentHeight, I do it proportionnaly so it doesn’t get distorted.
-- Create the image, memorize its original width & height, set it at the center local image = display.newImage("image.png") local originalWidth = image.width local originalHeight = image.height image.x = display.contentWidth\*0.5 image.y = display.contentHeight\*0.5 -- Since the scaling is set to "letterbox", we first set the height to fill the vertical space, -- and then we apply the same horizontal scale as the vertical scale image.height = display.contentHeight + math.abs(display.screenOriginY)\*2 local ratio = originalHeight/originalWidth image.xScale = ratio
As you can see, I’m setting the image heights so that it takes the whole content area. But because we’re using the “letterbox” scaling, and because of the video format, we also have to add the content area, from the bottom AND the top (which is math.abs(display.screenOrigin)*2).

As you can see, the image is now covering the whole screen. We’re gonna use the picture dimensions to do the same thing to the video. I don’t know why, but I didn’t manage to do it directly without this image (although in theory, it should be the same thing).
-- Creating the new video object local video = native.newVideo(\_W, \_H, image.width, image.height) video:load("video.mov")

-- Setting the final video size video.xScale = image.xScale video.yScale = image.yScale
… And that’s it. Using native.newVideo(_W, _H, image.xScale, image.yScale) should work, but in my case it didn’t work. Or at least, because I tested several ways to do it, I’m not sure what was causing me trouble anymore.
And so it is, we’ve got a video, in full screen, cropped if needed !

Notes :
- native.newVdeo() : from what I’ve tested, you can change several properties : x, y, xScale, yScale for sure. anchorX and anchorY seemed to have some effect, but it looked buggy. I may have done something wrong. As written in the docs, rotation doesn’t work on Android. You can even use transition.to() on a native.newVideo. It doesn’t seem to use a lot of resources !
- If your video format is “portrait” and not “landscape”, you should probably set the image.width first, then get the ratio, and apply it to its height then.
- There’s a bug caused by Android Lolipop : when you use the multitask function, your app gets minimized (it seems to use some kind of internal mask). The video seems to “move” and stays shifted if you go back to your app. I haven’t tried to simply put it back at the center yet (setting its x and y to _W and _H) once the app resumes.
Final disclaimer :
I’m definitely not a pro ! I’m still learning and I’ve written this just in case anyone else wanted to do the same thing. I may have written wrong stuff, so, test yourself and if I’m wrong, feel free to correct me ! It might even be easier if you manage to get rid of the image reference. I’m using it because… it’s easier for me (I’m more a “visual guy”).