HTTP Live Streaming with Android 2.x - android

Since Android (officially) support HLS starting with 3.0 I've looked at different ways to include hls in my app.
use a lib like the nexstreaming (pretty expensive)
use a HTML 5 player (hls not working on some 2.3 devices)
utilize plugin players like vitamio
My Problem is, that possibility number 3 works best, but my client doesn't want the users to see that a plugin is used.
Is there a way to include another apk / install it without prompting the user?
Or maybe someone has a completly different idea on playing hls on 2.x .

Vitamio is free(means charge) for personal/commercial use so far...

Contact vov.io and buy a commercial license for vitamio. Then you could bundle it in your apk. It's still going to be way cheaper than nextreaming.

Related

Support WebRTC for android and ios both?

I am making an application which gives support to webRTC for android & ios both for this I make a lot of R&D then I found an Ionic framework to support both platforms. you can see here/ionic. no doubt it is a powerful tool for us in nowadays. and for supporting webRTC I have used crosswalk. because internally ionic use phone`s browser means for android it uses Chrome and for ios ,safari but the issue was there: older version of Chrome did not support for webRTC and safari did not till now. so with crosswalk webView all thing is working fine means calls are getting connecting and user A and B can communicate utterly but I am facing an issue of apk size which is also mentioned # crosswalk issues tracker. I have done all possible ways to reduce the size of apk which is mentioned there - by generation two apks , but apk size is still more than 25 mb.
I found another way was to disable all instead of WebRTC -but I am not sure ,will it works or not / how to do that?
so can you please let me know how to solve this issue with the crosswalk. or is it possible or not ? if it is then how can I do this else please give me some references of plugins(webVisew) which supports webRTC.
thanks in advace.your help can save me thanks.

Using Webrtc in Native App

My questions is :
1 -- Is it possible to have a WebView( Provided by Native framework) instance in my Native App , and extend it to support Webrtc,
if 1 is Yes, then probably following would be the action Item
1 -- Have a webrtc build on Android, 2 -- In Android WebView extend Javascript to couple / bind the Webrtc call,
Please confirm..
What i am trying to do is
1 -- We have webrtc based Voice / Video chat application working fine in Chrome & Mozilla desktop Browser, as both comes with webrtc... , i.e. user need to access www.xyz.com and it will start video / voice sessions,
2 -- same thing on mobile, we would like to go as a native app, i.e. we are trying to make an application, which will have native WebView instance, in which we will access www.xyz.com to have voice / video session
3 -- I tried the way i explained in 2 but it seems, in WebView instance provided by Application framework doesn't have webrtc enabled in it, so i am trying to add it and this is what i am thinking,
-- WebView instance has some mechanism to extend the Javascript , that means
http://dev.w3.org/2011/webrtc/editor/webrtc.html
some of these API i need to add into the WebView, and for their implementation will come if i am able to successfully integrate and build Webrtc over android and iOS Platform
Please comment....
If you want to use webRTC in a Native App, i've built a small android app (https://github.com/pchab/AndroidRTC) that share the back camera to a nodeJS server (https://github.com/pchab/ProjectRTC).
I found that the easiest way to use the libjingle library is with IntelliJ IDEA. I've had a lot of problems with Eclipse and Android Studio.
You're going to have a hard time with the WebView, although it's coming on (newer) Android at least. Nothing on the horizon for iOS.
If you want complete native, you can check out what we've done # FM with IceLink, sounds like it might work for you.
Android WebView does not support WebRTC APIs at this point.
Work is underway on Java an Objective-C bindings, though that may not solve your problem.
With Android L release this should be possible by using just the Android WebView, more below :
http://developer.android.com/about/versions/android-5.0.html#WebView
I know this question is kinda old, but I find crosswalk (https://crosswalk-project.org/) to be a pretty good solution for using WebRTC inside of an Android app. What crosswalk do, is compiling a chromium browser into an Android app and hosting your site inside of this chromium, so you will have support for the latest browser features, like WebRTC.
I'm building a native app with a webview and webrtc video inside.
So generally it is possible to build such application and nowadays chromium (webview) have a official support https://developer.chrome.com/multidevice/webview/overview , but I have faced really a lot of problem during writing that application.
Few problems are:
Support for phones and os version - I have android 5.1.1 (xperia m2) and after a lot of problems webrtc is running. On android 6 (xperia z5 compact) is not working.. On other phones is sometimes working sometimes not...
You can not be sure, how webview will work - today webrtc is working, but tommorow Google can add some security rule, and it will not work- it's a little bit unstable, and as I have seen, some things depend on os compilation. WebView can get update from store independently of os.
PERMISSIONS - there are a lot of stupid problems, based on the fact that is it a browser inside native app, like - you can't expect a permission question from webview, you have to implement it in android webview config, and in some android versions it is working- in others not :-)
Still a lot of problems of 'young product' - example is that nowadays webview has some issue with devices info display (like camera is front or back) so you have to find a workaround for such problem
Bad video quality - currently my problem is a quality of video- nice quality of video on phone, below maximum resources consumed (cpu, network, memory) and video on computer is really poor...
...and many more
So the fact is - yes this is possible, but it's still not good enough to use it without facing a lot of problems which are not so easy to solve.
You can actually go native with html5 features. So if you use Crosswalk as someone mentioned before, but if you are really set against using: Crosswalk/Ionic/Angular/Cordova (which is awesome), you can still use Crosswalk in a native environment to replace inconsistent and feature lacking WebViews with 1 single, full WebRTC compatible WebView based on the Blink Engine.
I remember reading a few guides on how to get Crosswalk going in Android Studio, here's one I quickly searched, but just Google around there's a bunch of them.
https://www.snip2code.com/Snippet/34721/How-to-use-CrossWalk-runtime-within-an-A

Is it possible to use native libraries from ICS on older Android versions?

I have to be able to play HLS stream on Android OS starting version 2.2. I have done a research of existing possibilities:
I can use some 3rd party stuff like Vitamio. It works, but the source is closed, performance is rather poor, their plug-in sends some user info somewhere to China and I don't want to bother our users by installing some 3rd party stuff... So that's not a good option from my perspective.
I can try to build some Android port of FFmpeg framework, there are at least three of them, but I haven't been able to build at least one so far. I think it needs more patience and Googling... However, in case of success, there is also a problem with licensing - not as serious as with Vitamio and I am willing to pay license fees to MPEG LA if necessary, but it is still under LGPA.
Finally I got an Idea to use MediaPlayer from ICS, which already supports HLS streaming. My plan was to build the Android Stagefright media engine from the latest sources to get all the native libraries and distribute them together with my application.
I have successfully built all the Android stuff; got all the native libraries I need, but now I have a problem to load them on Froyo. I have placed the libraries into the projects libs folder, but application refuses to load them. It loads the original system libraries instead - if they are present on the current version.
So my question is, if it is possible to use native libraries from higher Android version on old ones. If so, then what I am doing wrong. How can I force my application to load ICS native libraries from its libs folder? Is it even possible?
Any comments, suggestions, ideas are highly appreciated...
You may try some opensource video player, such as VLC or mplayer, which has Android version.
And you can use ICS libraries, buy you need to do many work to modify and compile them with your target Android version. I've used some code from ICS in some of my apps.

Which version of Android supports File Input Streaming?

I need to know if android version 2.1 , 2.2 or 2.3 support online radio streaming, if not could you please tell me which one supports?
As far as I know, streaming audio is possible with all mentioned versions. One of the simpler examples I've seen can be found here http://blog.pocketjourney.com/2009/12/27/android-streaming-mediaplayer-tutorial-updated-to-v1-5-cupcake/
This example shows the usage of android.media.MediaPlayer with a HTTP protocol URL.

Streaming MIDI API in Android

I am a MIDI based musical application author. In my application I am generating a .midi file with a small lib that I wrote and play it on MediaPlayer and that's enough for that app. However in the future app I plan to have more interactivity and that's where I would probably need a streaming API.
As far as I know Android leaks APIs for realtime midi synth (at least official). But still I can see some apps that do use midi in quite advanced way. Question is how? Do they use NDK to access Sonivox directly or are there an unofficial apis for that after all? Any ideas?
Also I'm very interested if Google is planning to improve MIDI support in future versions of Android (in case anybody of Google sees this :))
Thanks.
You should check out libpd, which is a native port of PureData for both Android and iOS. It will provide you with access to the MIDI drivers of the system while still being able to prototype your software with very high-level tools.
Java has a very important latency, so i think this should be done with the NDK. Check this question, it has a couple of hints. This was reported as an Android issue (NDK support for low-latency audio), there might be some tips or info there too.
This is a simple but great sample application that successfully streams MIDI on Android https://github.com/billthefarmer/mididriver
You will have to put your MIDI messages together manually though ( the example creates two MIDI messages for play note and stop note). One can refer to the MIDI specification to further control the MIDI channels. The problem is that the default sound fonts on Android sound so bad.

Categories

Resources