Ren'Py Movies/Videos/Cutscenes not playing on Ren'Py Android Port

Crispy Chicken

Sandwich Lover
Game Developer
Jun 30, 2020
435
973
So I'm using Ren'Py and I've successfully finished creating my game. However, when using the Android Distributable feature of Ren'Py (Which lets you create an .apk version of the game), everything runs pretty well, except videos don't seem to play. That's about the only problem I have.

Actions done so far to try and solve this problem:
  • Converted all .webm (VP8 and VP9) videos to .mp4, and vice versa.
  • Tried both image calls and cutscene calls, yet it still doesn't work.
If you guys know how to fix this, thank you in advance!
 
  • Like
Reactions: Malkovichi

MissFortune

I Was Once, Possibly, Maybe, Perhaps… A Harem King
Respected User
Game Developer
Aug 17, 2019
4,812
7,908
VP9/WebM should work fine for Android. What's your code look like, out of curiosity?

There might be a better way of doing it, but I just have Ren'py read it as an image/scene. Might be worth a look. Like so:
Code:
image your_name = Movie(play="images/ani/your_ani.webm", loop=True, start_image="images/ani/yourani_060.png", image="images/ani/yourani_119")
image your_name2 = Movie(play="images/ani/your_ani2.webm", loop=True, start_image="images/ani/yourani2_060.png", image="images/ani/yourani2_119")
image your_name3 = Movie(play="images/ani/your_ani3.webm", loop=True, start_image="images/ani/yourani3_060.png", image="images/ani/yourani3_119")
Change the directory as per your own setup. 'start_image' should be the first image of your animation, and the latter should be final. This basically gets rid of the empty/checkered background look. Or should, at least. Then just reference it in your script (you should probably keep the above code at the top of the script for organizational purposes.) when it happens in your game. Something like this (code is from my own game. Ignore the 'relbasement46'. Likely not relevant to your case.):
Code:
    mc "Fine, but you need to tell Eden first."
    lil "She already knows. This was why we asked you to come over."
    mc "Wait, what do you mean she already knows?"
    lil "She wants to watch me have my way with you, she just won't know that you know about it. So, how about you stop crying and wrap your lips around this thing already."
    scene relbasement46 with dissolve
    lil "What a fit. Think you can swallow it all?"
    lil "You can start sucking any day now."
    window hide
    scene your_name with dissolve
    pause
    window show
    lil "I'd ask you how it feels, but obviously your mouth is occupied."
    mc "Mmph."
    lil "I don't like your tone, [mc]. How 'bout you do what you're told like a good girl and take this thing a bit deeper?"
    window hide
    scene your_name2 with dissolve
    pause
    window show
    lil "Halfway there."
    lil "I wonder if you can get all of it down on your own, though?"
    window hide
    scene your_name3 with dissolve
    pause
    window show
The 'scene your_name' should match what you have listed at the top. So, if the file's name is mc_bj at the top (image mc_bj = Movie(play=". . ."). . .etc.)

You call it later, like in the example above. So, basically: scene mc_bj with dissolve.

Might work for you. Worth a shot, at least. Hope you get it working regardless.
 
  • Red Heart
Reactions: Crispy Chicken

Crispy Chicken

Sandwich Lover
Game Developer
Jun 30, 2020
435
973
image aliceshowerc01 = Movie(play="movies/c01_s03_031_shower.webm", loop=True)
show aliceshowerc01 with dissolve


This is what I use when calling it^, and it seems to work on win/linux/mac distributables, but not on android ones. I might try changing "show", to "scene", as well as adding
"start_image="images/ani/yourani_060.png", image="images/ani/yourani_119" per your suggestion.

Regardless, thanks for the help! Here's praying it somehow works ;)