Adaptive streaming - smoothstreaming doesn't works - android

From documentation: "Adaptive Streaming - Automatically adapts to either congestion or bandwidth availability". But this works only when player starts (I use VideoView). If the intrenet speed falls while playing video - nothing happens but it is preferable that player switch video quality base on curren internte speed. So, questions:
Does android video player supports switching video quality in real time while playing video?
If yes, how to implement this?
Thank you for your attention.
Update:
For example Youtube google tv app. If bandwidth changing while playing video, player automaticaly switches to appropriate video quality without any delays.
What I have to do to make it work? I am using VideoView and it is works only when I start player.
Thank you.

Typically you would implement your own subclass of the VideoView that utilizes some form of QoS to monitor network bandwidth. If you are working on a Google TV application you can use the GtvVideoView (which supports smoothstreaming). To understand more about this you can read up on it here: https://developers.google.com/tv/android/articles/hls?hl=en

Related

Chromecast receiver - extremely poor framerates

We are experiencing severe issues with playback fidelity on Chromecast. Using the most basic implementation of CAF or v2 on the receiver, the video serves perhaps 2 frames per seconds, showing a lot of artifacts. We are using HLS (served via Akamai). After some research, here's what we know:
The same HLS streams play without issue on AVPlayer (iOS), EXOPlayer (Android) and Clapper (web).
When casting the underlying mp4 file (unsegmented), the chromecast handles it beautifully.
The issue is not with buffering itself (the playerState is not buffering, there is no buffering icon on the player, and the internet connection is solid)
When forcing the chromecast to use the lowest quality video from the m3u8 manifest (240p), the player performs better (but still not perfectly).
For now, it seems to us that the HLS segments are not being processed properly (while most players handle them well). Is there anything we can do to resolve this? Our product depends on a high-quality Chromecast experience.

Android Service to detect video playback on a third party Video Player

I need to develop an Android Service (API level > 21), which should be able to detect video playback on a third party Video player, so that it can further disable the Notification pop-ups during a video playback.
On searching, I found several posts talking about detecting the play-states of videos in a VideoView, such as the following:
How to detect when VideoView starts playing (Android)?
But, I couldn't find anything that can help detecting video playback on a video player, wherein, the video player is installed as a third party app and is not a part of the Android application/ service.
So, the challenges are:
1) The android service needs to detect a video playback
2) Registering package names for video player apps with the Service is out of question, since the Service should be able to detect the playback even when a new video player is installed from the Playstore.
3) Need to extend this idea for online video streaming as well.
Any help in this regard would be really appreciated.
Thanks in advance.
There is no way to implement 100% reliable video playback detection :(
Just and idea: try listening to the audio focus changes... this might help with detection of video playback, assuming the target player respects the audio output stream usage policy, recommended by Google. You might also want to get notified about system UI visibility changes (to detect fullscreen playback).
Audio focus:
https://developer.android.com/guide/topics/media-apps/volume-and-earphones.html
System UI visibility changes:
https://developer.android.com/reference/android/view/View.OnSystemUiVisibilityChangeListener.html
Also, you are correct saying that package name based detector is not an option since detecting active/running package is no longer possible on android 7.

Android VideoView set video quality in live streaming

I can load a video from the web. All works fine.
However, when a network connection is slow the video is buffering. So I want to set the quality of video while, streaming it automatically or manually.
I am blank about this.
If I am not mistaken, VideoView only plays the video. Here is the documentation on it, doesn't seem to have that option at all.
I'd suggest you use the youtube API instead if you can.

How can VideoView be made faster to load?

VideoView takes longer to start playing videos compared to iOS AVPlayer and WP MediaElement. The last two are almost always instantenous in my case, but VideoView takes anywhere between 5 and 15 seconds to start streaming. Are there any tips and tricks to speed it up? I'm setting up video streaming in a way similar to this: Why is the videoview so slow?
I'm not an Android expert, but I remember reading VideoView internally calls prepare async, so I'm not sure how a separate background task helps. I also noticed YouTube videos on my S6 take longer to open than YouTube on iOS. However, YouTube on S6 is still faster than my naive implementation, so I don't know what I don't know.
Are there any 3rd-party implementations faster than VideoView?

Video streaming on android phone

What is the best API for video streaming on Android? The Video is basically MPEG 2, kept on server, I want to stream to my Android phone which is having the decoder and our own player.
(decoding is happening on the phone itself).
The requirement is the delay should be as minimum as possible for smooth decoding and play back.
What about Gstreamer, is it a most efficient way?
Any suggestions?
Rgrds,
Heshsham
may example given at http://code.google.com/p/html5webview/source/checkout helps you

Categories

Resources