Does anyone know if any of the latest smartphones provide a audio line-in support?
Am aware that this question has been addressed earlier as well but it has been a while since the last query on this and also the smartphones has evolved so much.
For the sake of completion, I will answer my own query. After googling for few days, I conclude that none of the existing Android phones in the market provide line-in support. This is more of a hardware restriction.
Line stereo/2-channel recording has detailed explanation.
Related
I developing a low-latency audio app on Android, and found sth about FEATURE_AUDIO_PRO from https://developer.android.com/ndk/guides/audio/audio-latency .
But when I run my app on dozens of phones, every one is FEATURE_AUDIO_PRO support is False. Can someone tell me which Android phone is supported it? Thank you.
Most likely only Google's Pixel devices and flagship Samsung ones, as very few vendors seem to care that much.
Samsung has heavily invested in professional audio, to the point of having their own SDK, before Google finally added the AAudio APIs.
https://developer.samsung.com/galaxy/professional-audio
Supported by all Galaxy S and Galaxy Note series, as per Programming Guide.
So those are the models you can be sure to have proper support.
I have a very specific answer for which I am looking. I hope that there is someone out there that is smart enough as to point me in the correct direction.
Background: I have an Android phone (LG Power on 5.0 rooted) as well as a Nexus 10 running 6.0. In my house I have set up a very nice PA system to which I would love to stream audio. I am fully capable of plugging in a 3.5mm cord to listen to audio or to stream audio over WiFi.
However, I am a stubborn person and have always fancied the idea of streaming audio from one device to another via bluetooth. After all, Android is Linux.
After searching on the Internet, quite extensively, there seem to be MANY people who would love to find a solution. There are answers ranging from:
'This cannot be done',
'Why would you ever want to do that?'
to
'Here are all the things to may need. Build away. Oh and by the way, there may be more that you need'
I do not find these answers satisfactory and would like to put out there a request to all of higher intelligence than myself to find an easy (not requiring building a custom ROM, modifying the kernel, making my own application etc) way to achieve this goal.
Here is one source that seems to be very close to the answer:
Android device as a receiver for A2DP profile
If any more info is needed, PLEASE ASK!
Thanks in advance for all of the hard work and effort that is put forth on this site. I am truly thankful for all of the people willing to set aside time to help myself, an invalid when it comes to the intricacies of Android.
I know that this question has been asked before many times but not recently and the API have changed so Google might have fixed some bugs. I was thinking it might be possible with two ways.
1st: Using Bluetooth Low Energy API of Android and then use android as central mode to scan for Bluetooth devices(iPhone). That is similar to what here edoardotognoni asked, which it is seems after some seconds iPhone is rejecting him. I am still currently reading about this post and the raised issue he made but I mentioned it in case someone knows something has changed.
2nd: Using and WiFi-Direct. About this method I have not found anything but If it is possible for two Droids to connect why can't it be possible for a Droid and an iPhone to connect. I have read about that matter this answer.
I also found this example on GitHub iPhone part, Android part.
Unfortunately I am not very good with xcode so I don't know exactly what is written in the iPhone part.
edit: Actually after searching I already found that it is possible with BLE but not with WiFi-Direct since iPhone does not support it. Of course being able to do it does not mean it is easy. Despite that though I have not yet found concrete proof because all I have seen is theories, an xcode that I don't understand and an Android code which seems to work when I checked it, but I have not run it.
Any help will be much appreciated, sorry for the long post!
I built a very VOIP app for android phones. All i have is a text field that lets a user enter the username of the person they'd like to call. Then when they press call, it will wake up the recipients phone and play a ring tone. The recipient can answer or decline the call.
At the moment the app "almost" works fine on the following devices:
Galaxy Note 1 with OS 4.0.4
GS3 with OS 4.2.2 and 4.3
GS2 with OS 4.0.4
Nexus 4 with OS 4.2.2
Some minor issues I'm having are calls between some GS2 phones (GT-S7530M) to some GS3 phones, where the audio is extremely quiet. I'm not sure why this is, even though we maxed out the volume. Other times, there's plenty of crackling in the calls, or you miss out on people's sentences. We made sure the network speed was always at least 15mbps download and 1.5mbps upload.
Every other phone seems to work fine.
I am using linphone as the sip library for the phone. I am using asterisk as the telephone server. I am using GSM as the codec for the phone and for the asterisk server. I'm pretty sure I'm not doing anything "special" with my code. It's a simple app and I think any experienced Android developer will find my code pretty minimal and simple.
My question is, assuming I correct the issues for the targeted phones above, is it realistic for a single programmer to attempt to make this voip app work on 70% of modern android phones that are running OS 4.x+? Let's assume I want to be able to hit 70% target within a few weeks.
Some of you might think my question is too broad, so I want to make it clear that i'm just looking for a yes or no answer to whether it's realistic or not and the reason for your answer.
The reason I'm asking is because I had an earlier prototype, and I asked some strangers with other phones like Sony Xperia ZL, HTC One etc... and they seemed to have problems getting my app to work correctly. They experienced problems like the ring tone didn't work, or they couldn't receive a call (even though they successfully connected to my asterisk server), or the audio quality was extremely poor. This led me to do a bit more research on the popular problem known as Android Fragmentation. When I saw all the android phones out there, it scared me. Can I really reach 70% of modern android phones running OS 4.x all by myself in the next two weeks? Will this new version that I've created with bug fixes for Note 1, S3, S2 and Nexus 4 work perfectly on the other phones?
It's a very simple app
I long for the day when we can actually describe a custom VOIP app as being simple. It's 2013, and we cannot say that today with any degree of accuracy. IMHO, your app is rather complicated. It just so happens that most of the complicated bits are in a glob of open source code that you did not write (linphone) and a third-party server that you did not write (Asterisk).
It's a simple app and I think any experienced Android developer would find my code pretty minimal and simple
Pretty much all of the symptoms that you have described would either be part of linphone or part of Asterisk, from what I can tell. Your code may be simple, but your app is not.
is it realistic for a single programmer to attempt to make this voip app work on 70% of modern android phones that are running OS 4.x+?
If you remove linphone and Asterisk from the equation -- say, by rewriting your app to play a ringtone based upon an GCM user notification -- your objective seems reasonable.
However, since your app as presently constituted is almost completely linphone and Asterisk ("any experienced Android developer would find my code pretty minimal and simple"), your success is gated by how well linphone works on Android, and how well linphone-on-Android works when communicating with Asterisk.
Hence, the only people who will be able to answer that are those experienced with those technologies. You might try asking on some dedicated linphone and/or Asterisk resources. Or, you might ask fresh StackOverflow questions, with tags appropriate for those technologies, with more focus.
No. Some carriers inflict inanity: sip hostility or not awesome flavors of IPv4 to IPv6.
Currently I am also working on an Android VoIP client.
Actually there is no any difference between the different hardware and OS versions except this audio handling headache.
Unfortunately there are a lot of inconsistencies in the audio implementation by the different vendors. I would suggest you to have a look at some open source SIP softphone source code such as sipdroid, mizudroid and csipsimple. I was learnt a lot especially from sipdroid, although the code is not well commented. Be prepared to a lot of workaround handling each devices differently.
As discussed in other posts, most Android devices don't support recording calls.
Recording AudioSource.VOICE_CALL does though work fine on my Samsung Galaxy S2.
Does anyone know if supporting this is Google's new trend, or it's just a feature specific to SGS2?
I don't believe that Google is moving towards recording voice calls. In fact, I think they are probably working on ways not to allow this due to large security issues. Speaking of which, some recent news that happened a few days ago reports of such security flaws. I don't think that using AudioSource.VOICE_CALL was meant to be used in this way. Hope this answered your question.
Update: News link from 2011 is unfortunately broken now. Sorry about that.
Google doesn't have any control over this (unless they start mandating that devices must / mustn't support voice call recording in their Compatibility Definition Document).They have provided a way for applications to request the voice call audio by adding the VOICE_CALL AudioSource, but the actual implementation of this feature is platform-specific and is handled by the platform vendors and OEMs.
It may, however, be the case that you see more platforms having support for this feature now than you did back in 2011 (or 2010, since it takes a while for new platforms to appear on the market in consumer products).
I've worked with about half a dozen different mobile platforms over the last couple of years. Of these, every single one has had support for recording voice calls, although on two of them the software support was unfinished.
TL;DR: No, it's not an SG2-specific feature, but it's also not universally supported. And it doesn't really have anything to do with Google.