Adobe Air 3.0 iOS streaming H264/Speex on RTMP - video No.

Problem:

Stream H264/Speex RTMP in Flash Media Server does not display video.  Audio plays fine.

Conditions:

Adobe Air 3.0

iOS device (iPad 2, iOS4.3)

Settings of the App:

direct < renderMode > < / renderMode >

Flash Builder 4.5.1 compiler settings:

-swf-version = 13

-target-Player = 11.0.0

I tried to use stageVideo as the video ordinary object to render a signal H264 streaming from Flash Media Server, rtmp, but without success.  I can hear the audio, but the video is never returned.

I CAN see H263 video when aired continuously on RTMP using this configuration (with only the purpose of the video).

I can also run a locally stored file (H264/AAC) mp4 over rtmp from your iOS device and play it locally very well (using an stageVideo object).

I tried this with the two stageVideo (which works fine when streaming a mp4 of the iOS device file) and with the normal video object (handles regular video H263 fine just down from FMS on rtmp streaming).  I also played with backgroundAlpha = "0" in this case, all with no luck.

I followed all the online instructions and tutorials to get this to work since last week, but did not have luck.  I'm happy to post more code, but this approach is quite simple and has been described several times around these forums and posts from adobe.  It goes like this:

-instantiate NetConnection (_nc) of the FMS and wait for the successful login:

_ns = new NetConnection();

_nc. Connect (serverAddress);

-instantiate NetStream (_ns) and you connect using NetConnection:

_ns = new NetStream (_nc);

-Auditor of installation for StageVideoAvailabilityEvent; If stageVideo becomes available, attach _ns:

_stageVideo = stage.stageVideos [0];

_stageVideo = _stageVideo.attachNetStream (_ns);

-If stageVideo is not available, fall back to the video object:

_video = new Video();

_video.attachNetStream (_ns);

stage.addChild (_video);

-play app netStream:

_ns. Play (AppName);

My renderMode is set correctly ('direct'), and from what I can tell, this isn't a question of backgroundAlpha.

I saw this problem described elsewhere on this forum and on the net.

I would like to know Adobe: are there problems of compatibility with this approach?  It doesn't seem to be any type of compatibility table indicating which video codecs and transport protocols are available on various mobile platforms.  Since the mobile deployment is very fragmented, or a graphic description table like this would be useful for those of us develop - at least for the major mobile platforms mostly in use.

Forum of other messages similar to this problem:

http://forums.Adobe.com/message/3981541#3981541

http://forums.Adobe.com/message/3954578#3954578

Thanks in advance!

Advertisement

Hello

It turns out that the broadcast of H264 video in real time does not on iOS devices in Adobe Air.  Other video codecs work (H263), but not for the H264.  You will consume the stream, but will not hear audio.  I confirmed that, after talking with members of the Adobe Air development team.

-Craig

Tags: Adobe AIR

Similar Questions

  • What version of Adobe AIR SDK supports iOS 9?

    Hi all

    What version of Adobe AIR supports iOS 9?

    I have a DONKEY that is built into AIR SDK 17 and my native iOS is built with iOS SDK 9. When I Isaiah to compile the test application, it gives me below error:

    Error occurred during the application of packaging:

    LD: library not found for - lSystem.B

    I wonder if it is the version of the AIR SDK that is causing the problem?

    Any help will be appreciated.

    Hi niranjan99926198,

    Please follow the following to workaround [Applicable only for MAC]

    1. download and install Xcode last version 7 (we tried on beta xcode7.2)

    2. create a symbolic link or copy of Xcode way ld: /Applications/Xcode-beta.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bi n/ld to /lib/aot/bin/ld64/ld64

    I hope it solves the problem.

    Roshan

    Adobe Air

  • What is the equivalent of Adobe Air to CoreData iOS?

    I used CoreData on iOS and love it.  Can someone tell me what is the mobile equivalent of CoreData's Adobe Air?

    I use EncryptedLocalStore to store the user's preferences, but it uses iOS keychain and causes data to persist on the device iOS via an app removal & install.  This is no good, since I'm store preferences that is a little more appropriate for the use of the keyring.  AND I want the app data deleted off the unit once the application is deleted/uninstalled.

    Any ideas?

    My opinion:

    Shared local objects if you want to have your prefs in the form of key/value pairs. or by using E4X with readObject and writeObject file API if you want to have your prefs in XML format.

  • Adobe Air for iOS - SQLError: ' #3115 error ' no such table ".

    I'm developing Adobe Air application for iOS with sqlite on that. When running on my local machine, it worked like charm (add, edit and delete). Unfortunately, when tried to run on the iPAD, it gives me the following error:

    SQLError: Details ' Error #3115',:' no such table: ' tblEmploye ", operation: 'run', detailID:"2013".

    Here is my code when opening the sqlite database: * data is saved to the directory of the current application where all the files are stored:

           
            exampleDBFile = File.documentsDirectory.resolvePath("mydb.db");
    
            if (exampleDBFile==null || !exampleDBFile.exists) {
                MovieClip(root).mcSong.visible = false;
                MovieClip(root).mcAlert.visible = true;
                MovieClip(root).mcAlert.enabled = true;
                MovieClip(root).mcAlert.txtErrorMessage.text = "Database not found";
            }
            exampleDB = new SQLConnection();
            
            exampleDB.addEventListener(SQLEvent.OPEN, onExampleDBOpened);
            exampleDB.addEventListener(SQLErrorEvent.ERROR, onExampleDBError);
            
            //exampleDB.openAsync(exampleDBFile);
            exampleDB.open(exampleDBFile);
    

    I also tried to use the following but still no luck

    exampleDBFile = File.applicationDirectory.resolvePath("mydb.db");            

    using this, I get a different error: Error: Error #3104

    And here is the code for adding new entries

            
            sqlInsert = "insert into tblLyrics (empName, empDesc) values
                        ('"+ strReplace(txtSearchMe.text, "'", "") + "','"+ strReplace(txtContent.text,"'","") +"')";
            dbStatement.text = sqlInsert;        
            dbStatement.addEventListener(SQLEvent.RESULT, onDBStatementInsertResult);        
            dbStatement.execute();
    
    

    Hoping for your advice...

    Hello

    @uxavenue

    to add something to the post of samia:

    -on iOS your application directory is in 'read only' (at least when using native application)-so resources in the application directory (in the terminology of the Air - not iOS SDK SDK) may not be changed/written/updated

    -you could ship already created database sqlite with your application files, but must be copied to the writable to the application directory - for example documents. This directory is accessible via:

    File.documentsDirectory

    -When your application starts, you could do more:

    (1) build the path to the path of database documents

    (2) check if the database in this path exists (if this file exists)

    (3) if the file does not exist yet either copy in this path of the resource directory of the application (where you consolidate during the generation of project) OR create the new empty database using all these CREATE table and then INSERT statements required to create the new new copy of database

    (4) on each next start so check if the file exists at #2 jump creation/copy of database and simply start using it.

    Kind regards

    Peter

  • Connection of an iOS to the debugger in Adobe air application animate

    Hello

    I need to connect my iOS to Adobe AIR application to a debugger, a debugger will work. When I publish my Animate app crashes before it can connect, leaving behind an app still works on my phone. But there is no obvious way to connect to a console at the breast of animate it using "debug" or "start the remote debugging session. With the Simulator, it will connect as long I give IP address appropriate, it will connect. I don't have that option in my app on iOS. My iPhone or iPad will connect. How can I get this done?

    Apparently, the debugger to connect if you do not set the install on the flag of the device. But I found that animate them for Windows doesn't crash as it does on Mac OS. So the question is now moot.

  • Someone else is having their iOS Adobe AIR app crash in the first second of its opening?

    Someone else is having their iOS Adobe AIR app crash in the first second of its opening?

    I use the iPhone 6, iOS 8.1.3, with a development certificate.

    With Adobe AIR SDK 16.0.0.283 and now with 17.0.0.93, after compiling the application (whether release or debug mode), before the getTimer() app can never reach 999 milliseconds the app will crash. Any code that I have, it just hangs before the runtime can never reach the first second.

    Anyone else having this kind of behavior?

    Chris,

    Thanks for your quick response. I found a way to reproduce. It is on the interfaces, and when I try to call a method with an interface of the application hangs. I think it's related to interface with several parameters. I have connected the bug here:

    Bug #3935199 - iOS App crashes when you call a method of objects via interface

  • Publication of iOS Adobe Air maintains unexpected errors

    The unit has met and unexpected error.

    Setup error: PackageExtractionFailed

    I thought that it would be maybe my certificates or profiles. So, I did the new certificates of development and distribution. I extracted the to .p12. I put it in flash and typed with the password.

    I then added the provisioning profile with the joker in that app ID typed. I put my type development iOS on the test. And published it for my iPhone. I also put my photo app on the icons tab.

    I get this error even though I double checked everything I filled correctly.

    Help, please. Thank you.

    @Latha, I think that the problem was because of the version of Adobe Air. My device is already registered, I'm sure. It seems it will work if you switch your version of Adobe Air.

    Thanks anyway.

  • Adobe Air + Box2D.swc = TypeError: Error #1009 / / new way of managing .swc files in Flash for iOS Apps?

    Hello

    I need your help please - I need to update one of my iOS Apps. In this application, I use Box2d for a simple maze game (this is an application for children). When I publish and test this game on my Mac it works fine. I can drag my hero (fish) in this maze and all detections of collision, gravity etc perfect work.

    maze.jpg

    When I test it on my iPad it does not work. The device debugger shows this error message:

    TypeError: Error #1009: cannot access a property or method of a null object reference.

    Global $init)

    Global $init)

    at Box2DAS.Common::b2Base$/initialize() [/ users/jan/Documents/_Projekte/Spielplatz/Universal_ Retina/src/com/Box2DAS/Common/b2Base.as:31]

    to wck::WCK/create() [/ utilisateurs/jan/Documents/_Projekte/Spielplatz/Universal_Retina/src/com/wck/WCK.as:26]

    in misc::Entity/ensureCreated() [/ users/jan/Documents/_Projekte/Spielplatz/Universal_Retina/s rc/com/misc/Entity.as:50]

    in misc::Entity/handleAddedToStage() [/ users/jan/Documents/_Projekte/Spielplatz/Universal_Ret ina/src/com/misc/Entity.as:100]

    in misc::Entity/handleAddedToStage()

    Line 31: loader = new CLibInit();

    Bildschirmfoto 2014-10-23 um 21.06.03.png

    I guess that "CLibInit" must come from the .swc file.

    The thing is:

    I won't change anything in this maze game - it seems it has to do something with the new version of Flash or Adobe Air. File box2d.swc is included:

    Bildschirmfoto 2014-10-23 um 21.01.26.png

    It has always worked like that - and it works when test on my Mac - but it doesn't work anymore on my current system.

    So I started my Mac from an older system (10.9.5 on an external HD) and published the App in Flash and Adobe Air 13.0 CS6 - then all of a sudden, he is working on my iPad as before. I was able to draw a fish and make it arround.

    The same project / app released from my current OS X 10.10 + Flash CC 2014 + Adobe Air 15.0.0.302 does not work. I still have this error message - I can't drag the fish - nothing happens. And I have no idea why this happens and what I could do. I searched all day for a solution but found nothing.

    If nothing has changed by the way Flash and/or Air manages the .swc files? Is there another way to include: import cmodule. Box2d.* / CLibInit?

    -If someone has an idea - please let me know!

    Best regards

    Jan

    SOLVED!

    I uncheck 'Schnelleres Verpacken aktivieren (Beta)' and now it works again! Hooray!

    @ Adobe: Please take a look at this!

  • Adobe AIR applications open to black screen in iOS 8

    Adobe AIR for iOS apps that I've published using Flash Professional CS6 more to properly run on iOS 8. They worked well in the iOS 7.

    After opening, they just cling to a black screen (probably the launch screen - I don't have an image for this).

    Is this a known issue? Are there solutions?

    I found an answer--applications have been published using the AIR SDK 3.4, which I think does not support iOS 8.

    Republished with 15 latest AIR SDK and it works properly.

    Guess I'll have to republish everything.

  • Adobe AIR iOS app is not running in the background

    I have an iOS with Adobe AIR application. It does not in the background even if I did the following things that I can think of,

    1 NativeApplication.nativeApplication.executeInBackground = true;

    It's the first thing I did. I got another application that runs in the background without problem, and it's the only thing I know that I used there.

    2. experienced with direct < renderMode > < / renderMode >, < renderMode > gpu < / renderMode > and < renderMode > auto < / renderMode >. None worked.

    3 added,

    < key > UIBackgroundModes < / key >

    < table >

    Audio < string > < / string >

    < / array >

    Does not work either.

    Whenever I pass the app at bottom, no matter how short time, it always starts at the beginning when put in the back. The only exception is when I take a phone call, in which case it seems to continue where it left off. Is someone can you please tell me what is happening? Is there still hope for me? Thanks to a bouquet.

    BTW, the same app packaged for Android has no problem running in the background, and I didn't do anything to turn it on.

    I forgot to update here once I found the problem.

    There's a UIApplicationExitsOnSuspend key that was for some reason the true value in my application.xml file.

  • Maximum file size for Adobe air for iOS and Androind update apps

    Hi all

    I'm working on a project that has a few videos I need to group in my mobile application for an Ipad app that I created using Adobe Air for iOS. My question is simple there at - it a maximum file size limit on applications compiled using Adobe air for iOS? And if yes what is it? Any help would be great.

    best regards Mike

    It is not a limit.

  • File.upload ActionScript does not work on Air SDK for iOS devices

    I try to use the ActionScript File.upload to transfer a file on Air SDK for iOS environment, but the File.upload does not work properly. No event on the file upload handler is executed after File.upload is called, and no exception is caught. When I check the side network traffic server, I found no application http even didn't hit the server after execution of File.upload. The code is below.

    ------------------------------------------------------------------------------------------ -----------------------------------------------------------------------

    <? XML version = "1.0" encoding = "utf-8"? >

    " < = xmlns:fx s:View ' http://ns.Adobe.com/MXML/2009 "xmlns:s ="library://ns.adobe.com/flex/spark"title ="HomeView"> "

    < fx:Declarations >

    <! - Place non-visual elements (e.g., services, items of value) here - >

    < / fx:Declarations >

    < fx:Script >

    <! [CDATA]

    private var file:File;

    private var dir:File;

    This method is executed to create a file and download it when you press the download button.

    protected void OnUploadButtonPressed(event: MouseEvent): void {}

    trace ("upload button clicked");

    var urlReq:URLRequest = new URLRequest ("http://10.60.99.31/MyPath/fileUploadTest.do");

    urlReq.method = URLRequestMethod.POST;

    var str:String = "this is test";

    var imageBytes:ByteArray = new ByteArray();

    for (var i: int = 0; i < str.length; i ++) {}

    imageBytes.writeByte (str.charCodeAt (i));

    }

    trace ("size =" + imageBytes.length);

    try {}

    dir = File.applicationStorageDirectory

    I also tested in several different directories

    dir = File.createTempDirectory ();

    dir = File.documentsDirectory;

    var today: Date = new Date();

    var filename:String = 'IMG' + now.fullYear + now.month + now.day + now.hours + now.minutes + now.seconds + now.milliseconds + ".txt";

    file = dir.resolvePath (filename);

    var stream: FileStream = new FileStream();

    Stream.Open (file, FileMode.WRITE);

    stream.writeBytes (imageBytes);

    Stream.Close ();

    Review the content of the file to check if the file is written successfully.

    var readStream:FileStream = new FileStream();

    readStream.open (file, FileMode.READ);

    var: string result = readStream.readUTFBytes (readStream.bytesAvailable);

    trace ("rear read result =" + result); The result is shown here as planned.

    file.addEventListener (Event.COMPLETE, uploadComplete);

    file.addEventListener (IOErrorEvent.IO_ERROR, ioError);

    file.addEventListener (SecurityErrorEvent.SECURITY_ERROR, securityError);

    file.addEventListener (ErrorEvent.ERROR, someError);

    file.addEventListener (ProgressEvent.PROGRESS, onProgress);

    file.upload (urlReq); This line does not work. No handler is executed. No http request struck the coast server.

    trace ("after file upload test");

    } catch (error) {}

    trace (e);

    }

    }

    Complete Manager

    private function uploadComplete (event: Event): void

    {

    trace ("Upload successful.");

    }

    IOError handler

    private void ioError (error: IOErrorEvent): void

    {

    trace ("Upload failed:"+ error.text ");

    }

    Manager SecurityError

    private void securityError(error:SecurityErrorEvent):void {}

    trace ("security error:" + error.text);

    }

    Another Manager

    private void someError(error:ErrorEvent):void {}

    trace ("an error" + error.text);

    }

    Progress Manager

    private void onProgress(event:ProgressEvent):void {}

    trace ("progressHandler");

    }

    This method is executed to call the URLLoader.load when the delicate touch.

    protected void OnTrickyButtonPressed(event: MouseEvent): void {}

    var urlReq:URLRequest = new URLRequest ("http://200.60.99.31/"); This points to a server not - exist

    urlReq.method = URLRequestMethod.POST;

    urlReq.data = new ByteArray();

    var loader: URLLoader = new URLLoader();

    try {}

    Loader.Load (urlReq); This line is very important in iOS7. He decides if the latter file.upload may work.

    But in iOS8, file.upload does not work even if that line is executed.

    trace ("after urlloader load");

    } catch (error) {}

    trace (e);

    }

    }

    []] >

    < / fx:Script >

    < s:Button = "200" x = "200" width = "400" height = "200" label = "Upload" click = "OnUploadButtonPressed (event)" / > "

    < s:Button = "200" x = "500" width = "400" height = "200" label = "Tricky" click = "OnTrickyButtonPressed (event)" / > "

    < / s:View >

    ------------------------------------------------------------------------------------------ -----------------------------------------------------------------------


    When it is run on the simulator of the Air, it works very well as expectedand the file is successfully downloaded to the server. But when run on iOS devices (in my case, iPad), as I explained at the beginning, no event on the file upload handler is executed and not the http request has even hit the server. So I think that the problem may come from the client side.

    During my attempt to solve the problem, I found something complicated about this problem on iOS7. In other words, if you call the URLLoader.load method (although the URLLoader.load points to an address non-existed) before calling the File.upload method, the File.upload will work as expected on iOS7. Specifically, when the above OnTrickyButtonPressed method is run before the OnUploadButtonPressedmethod, File.upload will succeed on iOS7. But this only happens on iOS7. On iOS8, File.upload still refuses to work, regardless of knowing if the URLLoader.load is executed before.

    I think in my case, the problem is not the problem of sandbox or a session of Firefox problem described in the two links below, because not even a http request hit the side server. It seems that the Air SDK for iOS comes to fail send the http reason request any.

    http://StackOverflow.com/questions/5967382/Flex-4-FileReference-issues-with-Firefox

    http://StackOverflow.com/questions/351258/how-do-i-make-Flex-file-upload-work-on-Firefox-a nd-safari

    To make my problem clear, I list my environment below:

    • Development environment: Windows7 (64-bit) / Mac os 10.9.4 (tested on both OS platforms.)
    • IDE: Flash Builder 4.7
    • Air SDK: 3.8 / 16.0.0 (after that I have updated to the latest Air SDK 16.0.0, problem persists.)
    • Application server: Tomcat7 + spring

    Finally, I want to mention that download the file using URLLoader.load isn't an option in my case because I want to download large files in the future, which cannot be addressed with the URLLoader.load.

    I struggled with this for days. If I really appreciate it if anyone has an idea about this.

    Thanks in advance.

    Hi KA RYU.

    We have reproduced the issue successfully, our team would work on it.

    -Tushar

  • Is it possible to create a video chat for ipad app in adobe air?

    Can live audio and video streams be sent fms to ios by adobe air applications?

    Yes you can, but there are a lot of caveats. Here are a few:

    -the camera doesn't change orientation when the orientation of the device changes

    -accelerated video rendering hardware is hit or miss on Android

    -hardware acceleration of video decoding to the RTMP stream is not possible on iOS

    -StageVideo is limited to one instance on iOS and Android

    -Acoustic echo cancellation is not supported on iOS and Android

  • Adobe Air 2.7 support

    In my view, that there are a new version of Adobe Air 2.7 as seen in this link

    http://blogs.Adobe.com/flashplayer/2011/06/Adobe-Air-2-7-now-available-iOS-apps-4x-faster.html

    The first video, there is mention of the tablet sdk support 2.7. can anyone confirm this? How will be the Tablet SDK works jointly or to expect a new version of sdk tablet based on Air 2.7?

    If it is the latter, when can we expect the next sdk?

    It would be useful to be able to target an Air sdk for all platforms.

    Greg

    Also re-read the blog post. There was a * next to the Tablet OS that read...

    * BlackBerry Tablet OS is scheduled to receive an OTA (over-the-air) of AIR 2.7 update by the end of June.

    That clears things up a bit. Impatient for there - just for consistency and cross platformedness (not a real word!)

    Greg

  • Adobe Air 2.5 vs 21.0?

    When you create an AIR applications to animate, there are the following options:

    Air 2.5

    Air 21.x for ios and android?

    What is 2.5?

    How do you publish for 22.0?

    Air 2.5 has been used in the past and can't be used, especially for ios.

    you add air update of the sdk to animate by downloading and uncompressing the sdk, find and download versions archived Adobe AIR SDK

    (if you want to check a sdk beta, google labs of adobe air sdk).

    to add to animate, click Help > manage adobe air sdk > + (IE, add) > navigate to the folder where you extracted the sdk.

Maybe you are looking for