Android Instant apps play video fail, show "Can't play this video." - android-videoview

(Instant apps can play video normally use webview, but videoview fail.
Use Android Videoview play video, The APK can play normally, but the Instant apps can not play. show error: Can't play this video.
java code:
Uri uri = Uri.parse("https://v1-tt.ixigua.com/40f0bfa756a159d27864bb70aeabdb8b/59f457f6/video/m/22033a84279cb1145a8bafee6279724505b1151dcf0000063157252c98c/");
VideoView videoView = (VideoView) findViewById(R.id.videoView);
videoView.setVideoURI(uri);
videoView.start();
logcat show:
10-28 06:31:01.952 21522-21522/? W/MediaPlayer: Couldn't open
https://v1-tt.ixigua.com/40f0bfa756a159d27864bb70aeabdb8b/59f457f6/video/m/22033a84279cb1145a8bafee6279724505b1151dcf0000063157252c98c/:
java.io.FileNotFoundException: No content provider:
https://v1-tt.ixigua.com/40f0bfa756a159d27864bb70aeabdb8b/59f457f6/video/m/22033a84279cb1145a8bafee6279724505b1151dcf0000063157252c98c/
10-28 06:31:01.953 21522-21522/? V/MediaHTTPService:
MediaHTTPService(android.media.MediaHTTPService#79aba57): Cookies:
null 10-28 06:31:01.954 21522-21522/? E/MediaPlayerNative: Unable to
create media player 10-28 06:31:01.958 21522-21522/? W/VideoView:
Unable to open content:
https://v1-tt.ixigua.com/40f0bfa756a159d27864bb70aeabdb8b/59f457f6/video/m/22033a84279cb1145a8bafee6279724505b1151dcf0000063157252c98c/
java.io.IOException: setDataSource failed.: status=0x80000000
at android.media.MediaPlayer.nativeSetDataSource(Native Method)
at android.media.MediaPlayer.setDataSource(MediaPlayer.java:1153)
at android.media.MediaPlayer.setDataSource(MediaPlayer.java:1141)
at android.media.MediaPlayer.setDataSource(MediaPlayer.java:1059)
at android.media.MediaPlayer.setDataSource(MediaPlayer.java:1080)
at android.widget.VideoView.openVideo(VideoView.java:399)
at android.widget.VideoView.-wrap0(Unknown Source:0)
at android.widget.VideoView$7.surfaceCreated(VideoView.java:678)
at android.view.SurfaceView.updateSurface(SurfaceView.java:664)
at android.view.SurfaceView$2.onPreDraw(SurfaceView.java:143)
at android.view.ViewTreeObserver.dispatchOnPreDraw(ViewTreeObserver.java:977)
at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:2337)
at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1386)
at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:6733)
at android.view.Choreographer$CallbackRecord.run(Choreographer.java:911)
at android.view.Choreographer.doCallbacks(Choreographer.java:723)
at android.view.Choreographer.doFrame(Choreographer.java:658)
at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:897)
at android.os.Handler.handleCallback(Handler.java:789)
at android.os.Handler.dispatchMessage(Handler.java:98)
at android.os.Looper.loop(Looper.java:164)
at android.app.ActivityThread.main(ActivityThread.java:6541)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.Zygote$MethodAndArgsCaller.run(Zygote.java:240)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:767) 10-28
06:31:01.958 21522-21522/? D/VideoView: Error: 1,0

The error does not seem to be related to Android Instant Apps, since playing a video in this manner works.
I'm getting a 403 error when trying to access the video you provided.
Make sure that accessing the video's file access is correct for the app's user.

Related

Error on chromecast receiver app PLAYBACK/104

I have an html5 receiver app that I'm writing for a client who already has a sender app. On playing a video for a second time, I get this error:
[cast.player.api.Player] error
[cast.player.api.Host] error: cast.player.api.ErrorCode.PLAYBACK/104
I can't tell if this error is coming from my implementation of the media library or from the sender app. Any guidance?
You can see in the Media Player Library Error Codes that this error means "The media element fired MediaError.MEDIA_ERR_SRC_NOT_SUPPORTED error." The suggested solution from the docs is to Validate developer data segment, ensure the codecs are included in Cast supported formats. You can read more about the cast.player.api here.

HTML5 Video does not work on mobile browsers when authenticated

I'm using a standard video tag like so <video src="test.mp4" controls>​​</video>. I'm in a SharePoint 2013 environment with NTLM authentication with basic authentication as fall back. The video tag works without issue on all desktop browsers that support HTML5 video.
On mobile browsers, the video tag fails once I authenticate to the site. The video is just static public content that is being served by IIS 8 and is not a part of SharePoint. The only exception so far is Firefox on android, which works without issue. I've removed NTLM auth and switched to basic auth only with the same results.
I've tested so far:
iPad iOS 8 - Safari, Chrome
Android K & L - Chrome, Firefox
Windows Phone 8.1 - IE
The video works as long as I am not authenticated to the host where the video is located. So, if I am at host1 with markup pointing at a video on host2, the video will work until I authenticate to host2.
The video will also work fine if I'm going through a forms based authentication. In my case, I'm using Microsoft TMG.
I've gotten this far with Android Chrome: It will first send a range request with 0-1 byte as expected with Chrome as the user agent. When unauthenticated, it will ask for the rest of the video with stagefright as the user agent. When authenticated, it doesn't send anything and simply fails to play the video. ADB logcat returns this when that happens:
E/StagefrightMetadataRetriever( 183): Unable to instantiate an extractor for 'snipped-video-url'.
E/MediaResourceGetter(11682): Error configuring data source
E/MediaResourceGetter(11682): java.lang.RuntimeException: setDataSource failed: status = 0x80000000
E/MediaResourceGetter(11682): at android.media.MediaMetadataRetriever._setDataSource(Native Method)
E/MediaResourceGetter(11682): at android.media.MediaMetadataRetriever.setDataSource(MediaMetadataRetriever.java:105)
E/MediaResourceGetter(11682): at org.chromium.content.browser.MediaResourceGetter.configure(MediaResourceGetter.java:417)
E/MediaResourceGetter(11682): at org.chromium.content.browser.MediaResourceGetter.configure(MediaResourceGetter.java:259)
E/MediaResourceGetter(11682): at org.chromium.content.browser.MediaResourceGetter.extract(MediaResourceGetter.java:153)
E/MediaResourceGetter(11682): at org.chromium.content.browser.MediaResourceGetter.extractMediaMetadata(MediaResourceGetter.java:125)
E/MediaResourceGetter(11682): Unable to configure metadata extractor
I/MediaFocusControl( 744): AudioFocus requestAudioFocus() from android.media.AudioManager#2ff8d914org.chromium.media.MediaPlayerListener#23b9af5d
D/MediaPlayer(11682): Couldn't open file on client side, trying server side
I/AwesomePlayer( 183): setDataSource_l()
My first thought was it was a Chrome/Safari issue, but IE behaving the same way makes it less likely. Is this by design? Any direction to figuring out what is going on would be appreciated.
Try this
i have a issue which is same as your issue(E/StagefrightMetadataRetriever( 183): Unable to instantiate an extractor for 'snipped-video-url'.).after doing lot of work finally find the way to correct that.
add this line in the manifest of your project
<uses-permission android:name="android.permission.INTERNET" />
Error
After Error

Dailymotion Flash Player API

Dailymotion Flash API has been discontinued. It redirects to use new Player API.
Old Flash API: http://www.dailymotion.com/pl/doc/api/player-deprecated/flash_api
New Player API: http://www.dailymotion.com/doc/api/player.html
Old API is still working correctly. There is no information how long it will be available yet.
I tried to update Flash project with new Player API. Everything would be fine, but when I try to load new Player API under other Flash project, it tells that loaded dailymotion player api is not pure Flash file that can be run.
Old dailymotion api code:
loader.load(new URLRequest("http://www.dailymotion.com/swf?enableApi=1&chromeless=1"));
Old dailymotion api result: working.
New player api code:
loader.load(new URLRequest("http://www.dailymotion.com/embed/video/xjk5h2?chromeless=1&controls=flash&startscreen=flash&html=0&api=location"));
New player api result:
Error #2044: Unhandled IOErrorEvent:. text=Error #2124: Loaded file is an unknown type.
How can I load new player api under other Flash project? Is it possible?
Our documentation isn't clear. We'll clarify all these points : support period, version, usage, etc.
I recommend you to use the /swf route into your as3 projects. The /embed/video is just a wrapper around /swf. You'll still benefit of last improvements using that route (/swf).
Hope this help.
Yvan

Specific Youtube Video Gives Error when play in desktop application

Description:
I have a youtube player in My Desktop Application. I implement it by using SWFLoader and using this url http://www.youtube.com/v/yd71LWhCO4s?version=3&autoplay=0&autohide=0&fs=1&showinfo=0 it works. 'yd71LWhCO4s' is a Video id, if I change it to FqJdzYY_Fas then it gives me an error.
`Error #2044: Unhandled adError:. text=Failed to load resource: Error
Load Never Completed. URL:
http://pagead2.googlesyndication.com/pagead/gadgets/overlay/OverlayTemplate.swf.
I get the url from the error message and i am interested to know about the swf at this URL. So i use this url directly in my browser, and my firewall blocked it due to advertising of Google. If I click on 'dismiss all' then the video playes.
I want to remove this error, how can I do that?

org.osmf.media.MediaPlayer Throw Error: The specified capability is not currently supported

I have a back end sound.php which can return .m4a sound file from web server and I can make a web request with id to the sound.php to return specify .m4a file. i.e. sound.php?id=1234
I am now trying to use org.osmf.media.MediaPlayer and AudioElement and URLResource
var mediaPlayer:MediaPlayer = new MediaPlayer();
var ae:AudioElement = new AudioElement(new URLResource("http://xxx.com/sound.php?id=12"));
mediaPlayer.media = ae;
mediaPlayer.play();
and it throw error of The specified capability is not currently supported .I have tested the link via browser which is return a .m4a file sucessfully .
I dont understand if it is claiming the requesting method or the returned file , would somebody has any idea? Thanks
Try setting the MediaPlayer.autoPlay to true or you should wait until the media is loaded, which is signaled through the mediaPlayerStateChange event, with state READY.
[UPDATE]
As stated in the NetStream - Adobe ActionScript® 3 (AS3 ) API Reference page and also in the Supported codecs | Flash Player page:
Flash Player 9 Update 3 plays files derived from the standard MPEG-4
container format that contain H.264 video and/or HE-AAC audio, such as
F4V, MP4, M4A, MOV, MP4V, 3GP, and 3G2. One thing to note is that
protected MP4 files, such as those downloaded from iTunes or digitally
encrypted by FairPlay, are not supported.
It seems you will have to try the NetStream approach.