Acoustic Echo Cancellation in AIR Mobile on iOS - using Native Extensions? - ios

We are developing a video chat app for iOS using AIR Mobile and the acoustic echo is a real show stopper. getEnhancedMicrophone() returns null so apparently Adobe can't help us here.
However, unlike Android, it looks like acoustic echo cancellation is a standard feature on iOS. Is there a way to use Native Extensions, for example, to enable AEC in our app using kAudioUnitSubType_VoiceProcessingIO?
This question is iOS-only, we're not interested in Android at this point.

Unfortunately, I am pretty sure you cannot use a native extension (ANE) for this to work with AIR mobile. NetStream can only attach Adobe's Camera and Microphone classes so there is no integration point.
And as you know, as of December 17, 2015, Adobe has still not addressed AEC for AIR on mobile devices, on either Apple or Android platforms.
However, a contact of mine talked with Chris Campbell at Adobe a couple of times early in 2015 regarding AEC for AIR Mobile, and Chris said at one point that they had cleared legal WRT licensing issues related to AEC, and he was pitching AEC for inclusion in AIR 20 for Mobile (December 2015) so it's possible it will be announced soon, though I'm not holding my breath.
I haven't seen any other public indications that Adobe is going to do this. I know it would be a tremendous enabler for developers of video chat-based apps, to include support for mobile devices.

Related

iPhone A13 Bionic breaks Streaming SDK (encoding)

I'm not sure where to head for this problem, so I'm asking here, maybe someone has experience with streaming SDKs for iOS.
We are a small company and we have an app that uses a proprietary Streaming SDK that our company has bought from another company a while ago (~4 years, we just inherited an app with this library recently). The library is used so that users can livestream themselves to the other users of the app. This functionality has been working fine on all iOS devices, until we got some reports form users that they can't stream on iPhone 11, 11 Pro and 11 Pro Max devices.
Today, our team finally got our hands on an iPhone 11, so we tried debugging the streaming library to see whats going on. It turns out the AudioEncoder of the library is reaching its "failed" state at the beginning of the stream and stopping the whole stream.
Before even getting our hands on a new device I suspected that the new CPU must be messing up some part of the audio/video encoding, and turns out I was correct.
Unfortunately, we do not have any contact (nor support) with the company that created this library, I'm pretty sure they don't exist any more, and besides some headers, the rest of the SDK is packaged in a .a file so we can't dig into the code to fix it.
My questions are:
If anyone who has developed any streaming libraries has faced any
similar issued with the new iPhones, and if you can point us on what
the problem is and how we could fix it and
Some streaming library
recommendations, preferably open source ones this time, so we don't
end back in such a situation again in 5 years.
Lucas,
We create Larix SDK for mobile streaming. From our experience, the SDK maintainer's main responsibility is not just develop new features, but maintain all the old and new OS and hardware releases. Every now and then some new system release may change APIs and add new restrictions so keeping app up-to date is critical in long-term.
Regarding iPhone 11 - there were no changes on those models in regard to audio, this is a library issue rather than the platform.

webRTC-enabled browser for iOS?

Preface: there are questions (some good, some bad) already in existance on StackOverflow about webRTC support on various browsers and platforms, including iOS. However I couldn't find anything definitive that was more recent than ~2012, and this is a rapidly-changing field.
I'm working on a browser-based webapp that uses webRTC for minimal-latency peer-to-peer data transfer (not for audio/video, unlike most applications it would seem - all I need is DataChannel).
I hit a snag when I started testing the data-transfer part of the project and discovered that iOS devices still don't natively support this in their built-in browsers (despite some recent rumors).
Bowser is a free open-source browser App for iOS that purports to support webRTC on iOS. The problem is that when I try to open the app, it simply crashes and closes. I've tested this on an iPhone 5 and 5s. Googling has failed to turn up alternatives - even Chrome for iOS doesn't currently support webRTC it seems.
My questions:
1) Are there alternative browsers (even iOS-version restricted) that are currently supporting webRTC, or is there anything promising coming down the pipeline?
2) Does Bowser actually work (webRTC) on iOS devices where it doesn't crash immediately upon launch?
3) What strategies have other people used to work around this limitation?
As of iOS 11, WebRTC is now supported in Safari: https://developer.apple.com/library/archive/releasenotes/General/WhatsNewInSafari/Articles/Safari_11_0.html#//apple_ref/doc/uid/TP40014305-CH13-SW1
Check out crosswalk project ( https://crosswalk-project.org )
This Provides runtime of Chromium engine for native support in older devices.
1) Are there alternative browsers (even iOS-version restricted) that are currently supporting webRTC, or is there anything promising coming down the pipeline?
Answer:
There is a Browser called Bowser that supports webRTC.
2) Does Bowser actually work (webRTC) on iOS devices where it doesn't crash immediately upon launch?
Answer:
It's not crashing as of now.But I couldn't successfully test with anything so far.I have raised an issue about it
3) What strategies have other people used to work around this limitation?
Answer:
Apple is yet to support WebRTC in Webkit so as of now the only way would be develop a native or Hybrid app that would support the unsupported WebRTC APIs.
You can develop a hybrid app powered by OpenWebRTC or cordova-plugin-iosrtc

RTMP / RTSP (Flash Video Format) support for iOS

I want to do real time streaming of data (in the form of video) which is in Flash Format, I searched and found out that apple do not give support to flash do we have any other third party
library which can be used,
After searching I found http://www.realtimelibs.com/#feature_3 but it is paid also I don't know weather it support flash format
I would love to get any help or any guidance
You might try to implement your app as an AIR app. AIR is the cross platform Flash runtime for iOS and Android.
Look for Apache Flex for a free Eclipse based IDE or use any of the Adobe tools.

Does Google Analytics Tracking for Flash works in packaged air application for IOS?

I'm building an air application (using adt packager) for iPad. I would like tracking some informations in my app so is it possible to embed Google Analytics library for Flash (.swc) in my packaged app ?
otherwise are there alternatives ways ?
Note: Currently, Flash tracking is available for any Flash content embedded in a web page. Tracking of data sent from Adobe Air, Shockwave, or via the Flash IDE (e.g. using Test Movie) is not supported at this time.
got this from https://developers.google.com/analytics/devguides/collection/other/flashTrackingIntro
I am having better luck with this alternative native extension (ANE) for iOS and Android:
https://github.com/alebianco/ANE-Google-Analytics
GAForFlash (http://code.google.com/p/gaforflash/) v1.0.1.319 did work for me when compiling with AIR and running in ADL on Windows, but seems to work intermittently when compiling and running it on an Android or iOS device. The visual debug feedback reports it always sending correctly, but half the time GA never receives the data.
Both solutions can send both pageViews and events, but neither (currently) works with the new mobile app GA profiles so you need to use a classic web profile.
It is possible. I have it running in my pure AS3 AIR project for mobile.
See http://code.google.com/p/gaforflash/ there is a swc you can use there.

Flash CS5 iOs documentation

Helo folks. I am really excited about the development for iOs devices on the brand new Adobe Flash CS5. I tried searching a documentation for this, but I cannot found. How can I view the possibilities and documentations for that?
Thanks!
First of all, CS5's been out for a LOOONG time already. :P
Here's a simple tutorial:
http://www.lynda.com/Flash-CS5-tutorials/Flash-Professional-CS5-Creating-a-Simple-Game-for-iOS-Devices/77863-2.html
I don't think there is any official Flash documentation for iOS, but I can't get to my Windows partition right now, so I can't check. If there is, it should be in the Help (F1).
But here's some official adobe content to get you started:
http://www.adobe.com/devnet/logged_in/abansod_iphone.html
Adobe is actually consistently pumping out new documentation, tutorials, and examples of Adobe AIR for iOS, Android, and BlackBerry Playbook development.
Also, I think what he meant was Flash CS5.5, not CS5.
Here are some links that might help:
Developing for iOS using Flash Professional
Build iOS Applications using Flex and Flash Builder 4.5 (Video)
Mobile development using Adobe Flex 4.5 SDK and Flash Builder 4.5
Ultimately, you're developing with Adobe AIR and targeting specific, newly-available-for-targetting platforms and devices. There are many things to consider (screen sizes, device orientations, sensors, platforms, and more) and the links above should give you a starting point. The Adobe AIR Developer Center has the above links and many more to help you on your way.

Resources