Live-stream video from one android phone to another via bluetooth - java

I am intended to make an app that stream live videos from one android phone to other one via Bluetooth,i need a simple player and there is no need to save the file,just play it.
My knowledge about stream in java is not enough and I really don't know where to start!
Please help me in finding any solution. Any help will be appreciated.

There is a sample android project to do streaming live video and allows you take photos and record videos from remote phone via bluetooth.
BluetoothCameraAndroid
Android allows you to get frames as byte array using camera, you can use that api to get frames and send it across. But the problem is throttling the sending rate. That also has been handled in that project.
In marshmallow and above devices, you have to give permissions
manually in settings. This project does not include runtime
permissions

Xuggler is a Java opensource library that works with streaming and modifying media on the fly. you can start from it at:
http://www.xuggle.com/xuggler/

Related

How to create a loopback camera through Android HAL?

1\ Regarding to Android Source Project hosted by source.android.com, Android supports multi-camera functionality. Also we have some information about how a camera driver really works in Android.
2\ As you know there is an old project called v4l2loopback that you can install and run on your Linux (it's simple if you have root access). For example you can also have fun with ffmpeg to stream a video as a dummy webcam device. (v4l2virtualdevice_android)
Qust\ What I'm really watching for is simple in logic and hard to develop. I want a solution that my Android application (that is provided as an APK) will be able to create a dummy camera and I can feed that from another source (not really important; maybe a video file). So user will be able to use original camera app, Instagram app (Live), etc ... to record the video.
I don't really know if it's necessary for device to be root or not. And if it's possible how can it be done using java or NDK?
You can do that if you replace the system camera HAL. It's quite possible if you build a custom ROM. Having root access on a known device is essentially same as having your custom ROM. But this doesn't help if your APK is installed (with root access) on a different device, even if the changes are minimal. Sure you can prepare logic that will work on many devices, but each will require separate consideration and testing.

Editing Voice while calling - Android

I am newbie in android developing, I have searched for this question but i didn't find my answer.
I want to know is there any ability to edit the sound calls in android?
I mean i want to add noise or change sounds of caller, Is it possible to change the sound in calls or adding a new sound to it?
TL DR : The answer is not yet.
And it's not like we've been waiting. The first entry i can find is from July 31 of 2009, the issue #3434 and, as of today (May 13 of 2015) it's still has not been assigned.
It's really hard to actually work on low-latency project, audio recording and of course, voices changers when you can't do low latency.
Not to say there's hasn't been any workarounds, you could emulate yourself the call, and add the voice effect sure (build your own dialer, and work with that), but let me warn you : you probably won't have any good perfs when it comes to real-time appliucations. No low-latency means no efficiency when it comes to audio recording.
You'll have to wait then.
Your question can be resolved partially depending your using model. the premises are :
you just want to eject some noise into your outgoing audio stream,
not into the incoming audio stream.
you may use a third-party VoIP application to make the phone call.
or simply say, you just want the peer to hear some modified voice. it is feasible.
Normal a native phone application on Android platform uses "Android audio system module" in the framework, the vendor provided audio libraries and Linux ALSA audio libraries to transmit/receive the audio data. These .so and .a files are under the read-only mode normally and could not be overwritten by user, so you can not inject data into this data chain.
But you have more capability to manipulate the data if you use a VoIP application to make the phone call, some VoIP applications can give a real phone number, like Fongo, you can receive a phone call to that number, the caller does not know you are using a VoIP application to speak.
So if I was assigned to do this project, here are my steps:
find a usable and open sourced VoIP client on Android.
find the code to sample the audio data from microphone ,add the code
to manipulate the raw PCM data and send the result to audio encoder.
build and run it on Android
register or apply a phone number for this VoIP client.
done.
Hope it help

How to access adc and dac directly on android phones?

I am at the beginning stages of a project in which I will be trying to make a hearing aid application for Android. I have wrote a few patches in Pure Data,C sound, and the basic Android sound library which basical take the input from the microphone and play it through headphones. No filtering or amplification.
While Csound gave the best performance, the latency made the tools unusable. I know Android L is suppose to help, but my goal is to create a low cost device hearing assist device. So older phones probably won't get it.
The next idea is to see if I can access the adc and dac values directly, then use C to make my own versions of AudioTrack and Audio record by using the NDK. Basically pointing to the places in memory where these values are coming in.
Is this possible? Also what should I be researching? I can't find anything online about accesses the DAC and ADC directly.
Thank you for your time.
No. "Android" does not provide for direct access by apps to hardware at all.
The NDK does not change that, as you still lack permission to the audio hardware device nodes.
If you have a particular device on which you can install a customized build of Android, then you might be able to do something by adding new APIs or somehow giving your app or a special unix group access to the hardware nodes. But the details of how you might utilize that access would depend on the device chosen.

Android app for GPS project

I decided to do a GPS car tracker for my college project and I need a bit of guidance on the actual framework for it.
My main plan is to use either an arduino (or raspberry pi) with a GPS and 3G module attached which would would alert the accompanying android app if the module was moved out of a certain location(if car is taken without permission etc).The app could also be used to request the location at will from the module.
My question is
Is this possible for me to achieve and would I be better using an arduino or raspberry pi,would I have more freedom with the pi as maybe I could run a service on it??
It would be great to get some opinions from anyone
Thanks
Yes, it is very possible and has already been done. It is also possible to use the two together to achieve this, but if you had to choose one, I would choose the RPi. This is because it can do more of what your are attempting straight out of the box with its full linux capabilities (wireless, etc). This can come ready to go if you get a preloaded SD card. Search for a NOOBS SD card on amazon.

Can I build android executable right from my android application

How do I build a android executable from my android application? I am building an application where it would send some application data to another device. If the receiver is using my application, there is no problem. But if the receiver is not using my application or not aware of it, the application data means nothing to him, unless the sender informs him about it.
I wish to build a executable, right from my android application, which will run on receiver end. Receiver may not modify it but can run it easily.
Example of such use:
Video recorder or converter application which convert/record video on a custom format and play it. Now the sender wants to send that video to his friend. Unless he have installed such video, he can't access it. However if it is possible for the sender to create some executable to embed that video, which can run on any android device it would be great.
Even if it were possible, it is definitely not practical to compile an application on an Android device. Why not make the compiled application available in the Android market and/or your own URL, and then get the receiver to download and install it?
Like Elevine said, you should send a URL to App in Market instead of sending an app.
If google/Android evev allow sending app directly, Spammers, virus writers will love the "features". It is as bad as ActiveX plugin date of IE5,6.
BTW, I thought about this kind of approach before. One can have all the prebuilt jar, dex files ready and just want to zip them together with new data as resources, signed it with the right key. It is possible to do it in the phone. But you really don't want to do put your signing key in anyone's phone.
It is much better/simpler to just submit the needed data to a server in the cloud have sign the package there.

Categories

Resources