(AIR iOS) NetStream.play() blocks microphone access in a Native Extension - ios

We have an AIR Mobile application (iOS) that uses a Native Extension for capturing microphone input. We would like to be able to play a NetStream in the application and capture the mic at the same time.
Microphone capture in the Native Extension works fine until we do NetStream.play() in the host AIR application. Once that happens, we start receiving zero samples (i.e. silence) in the Native Extension.
We've tried setting AudioSession in the ANE and other tricks, but to no avail. Is there a way for AIR Mobile not to block microphone operation in our ANE?

Looks like there is a conflict where AIR SDK audio class override the audio session used by the ANE. Take a look here http://forums.adobe.com/message/5660732 where they provide a workaround by playing the sound using also an ANE

Related

DLNA support for iOS video app

I am developing an video player app on iOS and I am now thinking about how to support DLNA so that my app can mirror its online video to the TV with some DLNA-supported device.
Notice that the online video is playing on my app via WIFI or cellular network and I could switch it to be played on TV and my app becomes a remote control and a server to the TV.
Which framework should I use?
I already know Cyberlink and PlatinumKit.
I have worked on DLNA with iOS and Android device. I did not used the Cyberlink or PlatinumKit. I learned how it works and write with swift and java.
Here is my blog about the subject, if you only want the part of DLNA to find DLNA device and stream the video to the device, then control events like play, pause and seek. You could find all the material you need here.
https://eliyar.biz/DLNA_with_iOS_Android/

Do I use AIR or native code for iOS application?

I have been using Flex for desktop development for years. I'm new to mobile development and need to create an app for the iPhone 6 but have no idea whether I should be using Flex/AIR or native code.
The requirements of the iOS app is as follows:
Record video to local storage within app
Playback video from local storage within app
Pause/seek video within app
Overlay controls on top of the video such as TextInput, TextArea and DropDownList so user can make notes as video is being recorded
Data entered via TextInput/TextArea/DropDownList is saved to local storage
Option to upload video and text data to local server
Can I achieve all of this using AIR or should I be using native code?
Can I achieve all of this using AIR?
Yes. Use CameraUI to capture video on the device (using the device's native camera UI), and StageVideo to play the video (using GPU). Overlay your app UIs (Flex or your own) to control video playback. Save local data using File or EncryptedLocalStore or SharedObject. Upload to a server using File/upload().
Or should I be using native code?
That's up to you. There are trade-offs, and everyone will have their own opinion. If you have a lot of experience with Flex/AS3, then you should be able to work out this app in AIR quite easily and see if it meets your needs.
You can achieve this using Adobe AIR but performance will get a hit.
You will need a lot of effort in order to optimize performance especially for video capture functionality.
It is better to do it natively.

Directing audio output to a Bluetooth speaker in iOS 7 without using MPVolumeView

Is it possible to direct audio output to a Bluetooth speaker in iOS 7 without using the MPVolumeView UI class? (iOS 7 is required for my project.)
I need to do this because I am working on a native extension which will allow an Adobe Air application to send audio over A2DP. As I understand it native extensions preclude the use of UI classes so I cannot use MPVolumeView.
There is an overrideOutputAudioPort:error: method on AVAudioSession but the only available overrides are AVAudioSessionPortOverrideNone and AVAudioSessionPortOverrideSpeaker (for the built-in speaker and microphone).
The documentation states that the setOutputDataSource:error method needs to use an object from the outputDataSources array which is only supported on “certain USB accessories”.
I understand that Apple prefers applications to allow the user free choice of audio output device but if I cannot use MPVolumeView how can I offer this? I’d be happy to code the UI in ActionScript if I could just read and set the available options in the Objective-C extension but it seems to be impossible at present.
Have I missed anything or are there any other options I could use? Any thoughts or comments appreciated.
Edit:
I was wrong to say that "native extensions preclude the use of UI classes". I am now displaying the MPVolumeView in my AIR application. However I would still like to know if it is possible to take more direct control of the audio output route.

getEnhancedMicrophone() doesn't work (reduce echo) on air mobile for IOS

I have a problem with my flex mobile application on iOS. It is a video chat application with a red5 server.
The video works fine but the voice has a big echo! I tried using getEnhancedMicrophone() but it didn't help.
How can I have Acoustic Echo cancellation or suppression on IOS?
I work on Flash Builder 4.6 with Air 3.5
There no known solutions.
Adobe been promising a fix for years but the solution requires access to Android source code from Google that is not open source. I had the same issues with a videChat app on Android using Adobe Air. I tried as workaround:
Switching mic.setLoopback(false/true) in a timer to break up the audio
Trying to detect sound coming over NetStream and set the local device mic gain to 0
Problem is I cannot detect if someone is talking over NetStream.
Use NetStreamInfo audio properties like audioBytesPerSecond but these do not jump when someone is talking over NetStream.
The problem is solved if the user wears headphones on the mobile side but this is not acceptable.

How to Make Adobe Air Extension for iOS native app

I searched over Internet but didn't find any answer.
Question 1# is it possible to use Adobe air application in a native iOS app.??
Let me explain I am going to develop an iOS application in which I have to play flv files. I created a application in adobe air which plays flv files in iOS but I want to play flv within my native app without leaving that native app.
I just want to inform you that if you play adobe AIR FLV file in IOS, it will not play, because IOS not supports FLV, i'm not sure about that if you put FLV in IOS native app and play it, but standalone it will not play, so first test it without native then try to implement it in native.

Resources