I am developing an advertisement application which plays multiple videos. I have faced a very strange problem: nor the simple Video nor the StageVideo are not visible when I run the app on target android device. Even FLVPlayback is not visible.
I can hear the audio but the only way to get the video is to press back button and then get back to app. In this case the video is displayed on the top of the rest display objects. This happens only on a target device which is a chinese sibo android tablet. It has android 4.1 on board. As I see a lot of people had the similar issue with different devices:
http://forums.adobe.com/message/5429125
but the solution they have mentioned there -adding true to the manifest xml doesn't fix my issue.
Adobe also advises to do it
http://forums.adobe.com/message/4914005
I am using adobe air 4.0 sdk and the air 4.0 runtime on the device. I have tried to change renderMode to CPU/Direct/Auto but it doesn change anything.
The other three android devices I have - toshiba thrive tablet(4.0.4)/ eken tablet(4.2.2)/ htc desire c smartphone(4.0.3) play all the video content just fine.
I guess the problem is re: their custom firmware(it auto hides all system bars..etc in order to make it work in 'kiosk' mode) but wanted to try all the variants before give up on this.
Any advice will be highly appreciated.
Thanks,
Max
After hours of scouring I did find a solution for AIR 4.6.0.
add backgroundAlpha to application node in the FLEX xml:
<s:Application backgroundAlpha="0.0" ... >
in the app.xml, change the namespace to highest version (3.7)
<application xmlns="http://ns.adobe.com/air/application/3.7">
and under the <android> node, add this
<containsVideo>false</containsVideo>
these are the references I found:
https://community.adobe.com/t5/flash-player/12-11-2012-air-3-5-runtime-and-sdk-update/td-p/4661723
https://help.adobe.com/en_US/air/build/WSfffb011ac560372f2fea1812938a6e463-8000.html#WS1B1ABBB6-F1D9-43f0-BC3E-0135F15FFAC4
No video when using spark VideoPlayer AS3
https://issues.apache.org/jira/browse/FLEX-33856
https://issues.apache.org/jira/browse/FLEX-33896
I have found a way how to force this unfriendly tablet to play the video in Adobe Air app by encoding it into FLV format and then embedding it into a swf via Flash pro. In this case I had to sync the app and video framerate(24fps). I have also set usingVideo flag to false in app descriptor.
Playback quality and performance are not very good but it's the only working method at the moment - I guess those can be improved by tweaking flv encoder params.
Update 4/3/2014
As the video playback embedded into swf was awful on the target device I have decided to download all the android versions of air runtimes starting from 3.1 and test normal video playback on these. Finally I have got the following results:
3.1.0.557 - NO
3.2 - YES
3.3.0.365 - YES
3.4.0.254 - NO
3.5.0.60 - NO
3.6.0.609 - NO
3.7.0.186 - NO
3.8.0.147 - NO
3.9.0.141 - NO
4.0 - NO
In the end I have found the solution - I have uninstalled all modern versions downloaded from google play and installed 3.3.0.365. I think my experience can be useful for those who develop AIR apps for android where target devices are noname low-end android tablets.
PS. I found another possibility to make video playing by using an swf embedded into an html page and displayed by StageWebView but this method has so much obstacles(FP security rules, ExternallInterface barriers) so it has no sense to implement it.
Related
I am testing a simple webrtc application and for that I do a video call using a browser. I have setup an emulator running Android R (10.0+) emulating Pixel 3 with 4 GB of ram and 6 GB of hard drive space. I made a call using the application between the emulator and the desktop, using chrome on both devices, and I got a black screen for participant's video on both screens. I used the parameter document.getElementsByTagName('video').readyState and document.getElementsByTagName('video').networkState and I got a value of 0 or no data for readystate and, a value of 2 or loading for the networkState. I tried the same setup with a different emulator (Pixel with Android Q) and checked the same parameter, and I had no issues. I was able to see the video from both participants. Can anyone help me out?
Edit: Actually I just figured this out. If you go in and remove "OMX.google" from https://chromium.googlesource.com/external/webrtc/+/HEAD/sdk/android/src/java/org/webrtc/MediaCodecUtils.java#33 and make a custom build of webtc that should allow playback in API 28 and below emulators. Am working on getting it for 29 and above soon.
The Android emulator will show a blank screen with h264 video, since webrtc for Android does not enable h264 hardware encoding/decoding by default. You will need to use a physical device or build webrtc to use h264 software encoding/decoding. AFAIK this is the best guide to do that. You will need to translate it from Chinese. Keep in mind that this quirk also causes the video to show as blank on devices without the appropriate hardware (generally a Qualcomm or Exynos chipset)
Currently, I am trying to make the Virtual Tour app to play with cardboard, then get the demo completed and it's working like a charm in Editor Play mode and on my Lenovo Phab 2 phone. Unfortunately, when I install it on Samsung Note 9, the app displays upside down. I have tried change the orientation in player setting and edit the android manifest but still no luck are there any one know the solution? or is it the bug in GoogleVRSDK or Unity ,caused at first there is the lack in app build that Unity build the app as normal app not Cardboard one even GoogleVR Demo scene, but after restart Unity it works fine.
This is apparently an issue with Unity 2019.1.x and both Android and iOS.
Either, switch rendering from Vulkan to OpenGLES3 (Android, not sure about iOS)
Or, downgrade to 2018.3.14f (is said to work for both iOS and Android)
Track updates here:
https://github.com/googlevr/gvr-unity-sdk/issues/1030
https://github.com/googlevr/gvr-unity-sdk/issues/1031
Right now, I'm developing mobile application - Simple Web browser with Android Studio 2.3 (Android SDK API 15).
I'm using WebView to display web pages. All renders properly except videos (on YouTube or other platform with HTML5 videos). I can only hear audio but the screen of the video is black and that's it. I tried different solutions:
I enabled hardware acceleration on in Manifest file:
android:hardwareAccelerated="true"
Also I set this for my Main Activity java file. Brow is my variable for WebView.
brow.setWebChromeClient(new WebChromeClient());
brow.getSettings().setAllowFileAccess(true);
brow.setLayerType(View.LAYER_TYPE_SOFTWARE, null);
And still with no luck. You can see my problem on the screenshot. So I'm waiting for working solution! If you need more info, type comment below! Thanks!
Screenshot of the problem
Good time passed since the relevant posts - 2 years. I wonder if the mistake is on my part - I am using this tutorial
https://developers.google.com/youtube/iframe_api_reference?csw=1
"Getting started section".
I very enjoy the player itself which works perfectly on Firefox 23.0.1 and Chrome 29.0.1547.62 m, but it freezes in IE10 and on my Android Galaxy Nexus phone 4.3.
In IE10 it seems to freeze on the player state change. I've also tried Firefox app on my phone and again it works while native browser freezes on the same player state change.
I've checked the spec and it seems HTML5 player is supported by both IE past 8 and Android.
Could anyone enlighten me please whether the mistake is on my part or something is fundamentally wrong with IE and my Android phone native browser?
I have same problem. When I open same page with Android Chrome, video is loading successfully. But Built-in android browser and also Lumia's browser(IE) can't load video.
That's a strange situation that video can be load at Youtube player's demo page(https://developers.google.com/youtube/youtube_player_demo) on Android's native browser.
I'm building a mobile site and haven't been able to get a HTML5 video element to work on my Samsung Galaxy S with Android 2.2.
The embedded video element at http://mediaelementjs.com/ DOES work.
However, the video element I created at http://mattjennings.net/zzz/video-test/test.php DOESN'T work. As you can see I'm also using code from Media Element JS Listed above.
I've spent hours trying to solve this problem including converting the test.mp4 file in my example link above to an "Android ready format" with Videora Android Converter.
are you trying to paly in video in emulator or in device. If it is not playing in the emulator it is the problem of video resolution. Best to try video of low resolution. I have gone through same problem.
Please go through the below url it may help you
The Android browser (before 2.3) requires specific handling to run the video element.
I ended up using HandBrake (https://handbrake.fr/), which is free and open source software, to create MP4 files for a website that could play on my Samsung Galaxy S3 phone that runs Android 2.2.
I also used code from http://www.mediaelementjs.com/ to make this work.