distriqt / ANE-AudioRecorder

Audio Recorder Native Extension
https://airnativeextensions.com/extension/com.distriqt.AudioRecorder
9 stars 2 forks source link

Complete event not being triggered. #3

Closed justAnotherprogramWriter closed 6 years ago

justAnotherprogramWriter commented 6 years ago

Expected behaviour: AudioRecorderEvent.COMPLETE to be triggered and play recorded sound.

Actual behaviour: AudioRecorderEvent.COMPLETE not triggered. Trace in the complete handler not traced out.

private function audioRecorder_completeHandler( event:AudioRecorderEvent ):void
        {
            var file:File = File.applicationStorageDirectory.resolvePath("recording.m4a");

            if (_nc == null)
            {
                _nc = new NetConnection();
                _nc.connect(null);
            }
            _ns = new NetStream( _nc );
            _ns.client = new Object();
            trace("playing the sound?");
            _ns.play( "file://"+file.nativePath );
        }

I also got this error when I tried to trace out:

Error #3500: The extension context does not have a method with the name isSupported.

Environment:

Hi, I am trying out this ane for my project. I need to be able to play music and record it together with user's voice. Is it possible with this ane? I am trying to try this ane first with default example, but the complete even is not even triggered. Can you please advice?

marchbold commented 6 years ago

The complete event should be triggered when you call stop().

However that error would indicate that something is wrong with the packaging of the extension. There are a few ANE dependencies, make sure you have added them all:

https://github.com/distriqt/ANE-AudioRecorder/wiki/i.Add-the-Extension

Missing those ANEs can cause that error message.

justAnotherprogramWriter commented 6 years ago

It is AudioRecorder.service.stop(); right?

Was it because of

Error #3500: The extension context does not have a method with the name isSupported.

that the stop function is not working?

I tried to include all the dependencies:

com.distriqt.androidsupport.V4.ane com.distriqt.Core.ane

, but it conflicted with my existing dependencies with the following errors:

Error occurred while packaging the application:

dx tool failed: UNEXPECTED TOP-LEVEL EXCEPTION: java.lang.IllegalArgumentException: already added: Lcom/adobe/air/ActivityResultCallback; at com.android.dx.dex.file.ClassDefsSection.add(ClassDefsSection.java:122) at com.android.dx.dex.file.DexFile.add(DexFile.java:161) at com.android.dx.command.dexer.Main.processClass(Main.java:737) at com.android.dx.command.dexer.Main.processFileBytes(Main.java:678) at com.android.dx.command.dexer.Main.access$300(Main.java:83) at com.android.dx.command.dexer.Main$1.processFileBytes(Main.java:607) at com.android.dx.cf.direct.ClassPathOpener.processArchive(ClassPathOpener.java:284) at com.android.dx.cf.direct.ClassPathOpener.processOne(ClassPathOpener.java:166) at com.android.dx.cf.direct.ClassPathOpener.process(ClassPathOpener.java:144) at com.android.dx.command.dexer.Main.processOne(Main.java:637) at com.android.dx.command.dexer.Main.processAllFiles(Main.java:506) at com.android.dx.command.dexer.Main.runMultiDex(Main.java:335) at com.android.dx.command.dexer.Main.run(Main.java:245) at com.android.dx.command.dexer.Main.main(Main.java:215) at com.android.dx.command.Main.main(Main.java:106)

UNEXPECTED TOP-LEVEL EXCEPTION: java.lang.IllegalArgumentException: already added: Landroid/support/v4/graphics/BitmapCompat; at com.android.dx.dex.file.ClassDefsSection.add(ClassDefsSection.java:122) at com.android.dx.dex.file.DexFile.add(DexFile.java:161) at com.android.dx.command.dexer.Main.processClass(Main.java:737) at com.android.dx.command.dexer.Main.processFileBytes(Main.java:678) at com.android.dx.command.dexer.Main.access$300(Main.java:83) at com.android.dx.command.dexer.Main$1.processFileBytes(Main.java:607) at com.android.dx.cf.direct.ClassPathOpener.processArchive(ClassPathOpener.java:284) at com.android.dx.cf.direct.ClassPathOpener.processOne(ClassPathOpener.java:166) at com.android.dx.cf.direct.ClassPathOpener.process(ClassPathOpener.java:144) at com.android.dx.command.dexer.Main.processOne(Main.java:637) at com.android.dx.command.dexer.Main.processAllFiles(Main.java:506) at com.android.dx.command.dexer.Main.runMultiDex(Main.java:335) at com.android.dx.command.dexer.Main.run(Main.java:245) at com.android.dx.command.dexer.Main.main(Main.java:215) at com.android.dx.command.Main.main(Main.java:106)

UNEXPECTED TOP-LEVEL EXCEPTION: java.lang.IllegalArgumentException: already added: Landroid/support/v4/widget/ViewDragHelper$Callback; at com.android.dx.dex.file.ClassDefsSection.add(ClassDefsSection.java:122) at com.android.dx.dex.file.DexFile.add(DexFile.java:161) at com.android.dx.command.dexer.Main.processClass(Main.java:737) at com.android.dx.command.dexer.Main.processFileBytes(Main.java:678) at com.android.dx.command.dexer.Main.access$300(Main.java:83) at com.android.dx.command.dexer.Main$1.processFileBytes(Main.java:607) at com.android.dx.cf.direct.ClassPathOpener.processArchive(ClassPathOpener.java:284) at com.android.dx.cf.direct.ClassPathOpener.processOne(ClassPathOpener.java:166) at com.android.dx.cf.direct.ClassPathOpener.process(ClassPathOpener.java:144) at com.android.dx.command.dexer.Main.processOne(Main.java:637) at com.android.dx.command.dexer.Main.processAllFiles(Main.java:506) at com.android.dx.command.dexer.Main.runMultiDex(Main.java:335) at com.android.dx.command.dexer.Main.run(Main.java:245) at com.android.dx.command.dexer.Main.main(Main.java:215) at com.android.dx.command.Main.main(Main.java:106)

UNEXPECTED TOP-LEVEL EXCEPTION: java.lang.IllegalArgumentException: already added: Landroid/support/v4/graphics/ColorUtils; at com.android.dx.dex.file.ClassDefsSection.add(ClassDefsSection.java:122) at com.android.dx.dex.file.DexFile.add(DexFile.java:161) at com.android.dx.command.dexer.Main.processClass(Main.java:737) at com.android.dx.command.dexer.Main.processFileBytes(Main.java:678) at com.android.dx.command.dexer.Main.access$300(Main.java:83) at com.android.dx.command.dexer.Main$1.processFileBytes(Main.java:607) at com.android.dx.cf.direct.ClassPathOpener.processArchive(ClassPathOpener.java:284) at com.android.dx.cf.direct.ClassPathOpener.processOne(ClassPathOpener.java:166) at com.android.dx.cf.direct.ClassPathOpener.process(ClassPathOpener.java:144) at com.android.dx.command.dexer.Main.processOne(Main.java:637) at com.android.dx.command.dexer.Main.processAllFiles(Main.java:506) at com.android.dx.command.dexer.Main.runMultiDex(Main.java:335) at com.android.dx.command.dexer.Main.run(Main.java:245) at com.android.dx.command.dexer.Main.main(Main.java:215) at com.android.dx.command.Main.main(Main.java:106)

UNEXPECTED TOP-LEVEL EXCEPTION: java.lang.IllegalArgumentException: already added: Landroid/support/v4/app/FragmentManagerImpl$OpGenerator; at com.android.dx.dex.file.ClassDefsSection.add(ClassDefsSection.java:122) at com.android.dx.dex.file.DexFile.add(DexFile.java:161) at com.android.dx.command.dexer.Main.processClass(Main.java:737) at com.android.dx.command.dexer.Main.processFileBytes(Main.java:678) at com.android.dx.command.dexer.Main.access$300(Main.java:83) at com.android.dx.command.dexer.Main$1.processFileBytes(Main.java:607) at com.android.dx.cf.direct.ClassPathOpener.processArchive(ClassPathOpener.java:284) at com.android.dx.cf.direct.ClassPathOpener.processOne(ClassPathOpener.java:166) at com.android.dx.cf.direct.ClassPathOpener.process(ClassPathOpener.java:144) at com.android.dx.command.dexer.Main.processOne(Main.java:637) at com.android.dx.command.dexer.Main.processAllFiles(Main.java:506) at com.android.dx.command.dexer.Main.runMultiDex(Main.java:335) at com.android.dx.command.dexer.Main.run(Main.java:245) at com.android.dx.command.dexer.Main.main(Main.java:215) at com.android.dx.command.Main.main(Main.java:106)

UNEXPECTED TOP-LEVEL EXCEPTION: java.lang.IllegalArgumentException: already added: Landroid/support/v4/media/MediaBrowserServiceCompat$ServiceBinderImpl$2; at com.android.dx.dex.file.ClassDefsSection.add(ClassDefsSection.java:122) at com.android.dx.dex.file.DexFile.add(DexFile.java:161) at com.android.dx.command.dexer.Main.processClass(Main.java:737) at com.android.dx.command.dexer.Main.processFileBytes(Main.java:678) at com.android.dx.command.dexer.Main.access$300(Main.java:83) at com.android.dx.command.dexer.Main$1.processFileBytes(Main.java:607) at com.android.dx.cf.direct.ClassPathOpener.processArchive(ClassPathOpener.java:284) at com.android.dx.cf.direct.ClassPathOpener.processOne(ClassPathOpener.java:166) at com.android.dx.cf.direct.ClassPathOpener.process(ClassPathOpener.java:144) at com.android.dx.command.dexer.Main.processOne(Main.java:637) at com.android.dx.command.dexer.Main.processAllFiles(Main.java:506) at com.android.dx.command.dexer.Main.runMultiDex(Main.java:335) at com.android.dx.command.dexer.Main.run(Main.java:245) at com.android.dx.command.dexer.Main.main(Main.java:215) at com.android.dx.command.Main.main(Main.java:106)

UNEXPECTED TOP-LEVEL EXCEPTION: java.lang.IllegalArgumentException: already added: Landroid/support/v4/BuildConfig; at com.android.dx.dex.file.ClassDefsSection.add(ClassDefsSection.java:122) at com.android.dx.dex.file.DexFile.add(DexFile.java:161) at com.android.dx.command.dexer.Main.processClass(Main.java:737) at com.android.dx.command.dexer.Main.processFileBytes(Main.java:678) at com.android.dx.command.dexer.Main.access$300(Main.java:83) at com.android.dx.command.dexer.Main$1.processFileBytes(Main.java:607) at com.android.dx.cf.direct.ClassPathOpener.processArchive(ClassPathOpener.java:284) at com.android.dx.cf.direct.ClassPathOpener.processOne(ClassPathOpener.java:166) at com.android.dx.cf.direct.ClassPathOpener.process(ClassPathOpener.java:144) at com.android.dx.command.dexer.Main.processOne(Main.java:637) at com.android.dx.command.dexer.Main.processAllFiles(Main.java:506) at com.android.dx.command.dexer.Main.runMultiDex(Main.java:335) at com.android.dx.command.dexer.Main.run(Main.java:245) at com.android.dx.command.dexer.Main.main(Main.java:215) at com.android.dx.command.Main.main(Main.java:106) 7 errors; aborting

If I am to remove my existing dependencies, my existing features of the project will not work. Should I include the following dependencies too?:

com.distriqt.androidsupport.AppCompatV7.ane com.distriqt.androidsupport.CardViewV7.ane com.distriqt.androidsupport.CustomTabs.ane com.distriqt.androidsupport.Design.ane com.distriqt.androidsupport.RecycleViewV7.ane

Because when I did include those 5 dependencies, I am getting more conflicts with my existing anes too.

marchbold commented 6 years ago

We can't guarantee that it will work with older versions of the Android support libs so we recommend using ours where possible, however you can attempt to use another version if you wish.

As a minimum you need to include our Core ANE. If you are encountering a conflict with another ANE including the com.adobe.air.ActivityResultCallback (the first conflict listed above) then remove com.distriqt.Core.ane and use the version without this included com.distriqt.Core.noair.ane. Our extensions will then use the definition in your other ANE.

justAnotherprogramWriter commented 6 years ago

Managed to get it working with noair.ane. Thanks a lot! You are a life-saver.

marchbold commented 6 years ago

Nice work, good to hear!