[
https://issues.apache.org/jira/browse/CB-12542?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15985101#comment-15985101
]
Leo Schubert commented on CB-12542:
-----------------------------------
[~filmaj] 'getDurationAudio' was added to be on par with Android (Its there in
the native plugin sources in AudioHandler.java)
{code}
else if (action.equals("getDurationAudio")) {
float f = this.getDurationAudio(args.getString(0),
args.getString(1));
callbackContext.sendPluginResult(new PluginResult(status, f));
return true;
}
{code}
I must admit that we are aliens not using the JS interface at all , we are
using a language called Genero 4GL directly calling the native plugins...
I should have added a function wrapper in www/Media.js like this
{code}
Media.prototype.getDurationAudio = function(success, fail) {
exec(function(p) {
success(p);
}, fail, "Media", "getDurationAudio", [this.id]);
};
{code}
The problem with getDuration (withoutAudio) is you can't get the duration
*before* playing that file.
You only get a valid duration upon you started playing
Hope that clarifies.
> can’t record to a “wav” file on IOS media plugin
> ------------------------------------------------
>
> Key: CB-12542
> URL: https://issues.apache.org/jira/browse/CB-12542
> Project: Apache Cordova
> Issue Type: Bug
> Components: Plugin Media
> Affects Versions: 3.5.0
> Environment: 9.x Simulator , IOS 8.x device (iPod touch)
> Reporter: Leo Schubert
> Assignee: Filip Maj
> Priority: Critical
> Labels: pluginsrelease
> Attachments: cdvsound.diff
>
>
> I get “Failed to initialize AVAudioRecorder: (null)” in the error callback of
> the startRecordingAudio() exec API.
> I see that the AVAudioPlayer settings in CDVAudio.m are
> {code}
> NSDictionary *audioSettings = @{AVFormatIDKey: @(kAudioFormatMPEG4AAC),
> AVSampleRateKey: @(44100),
> AVNumberOfChannelsKey: @(1),
> AVEncoderAudioQualityKey:
> @(AVAudioQualityMedium)
> };
> {code}
> This is IMHO the reason it doesn’t work. Either one uses the .m4a extension
> with {{kAudioFormatMPEG4AAC}} or
> .wav with the {{kAudioFormatLinearPCM}} key (the IOS docs are very unclear
> about which file extensions are actually supported)
> The plugin enforces “wav” but the settings enforce the MPEG4AAC encoder.
> Using the attached simple patch and using .m4a at the JS side solves the
> problem and records on my iPod touch IOS 8.x.
> I stumbled also across
> https://github.com/remoorejr/cordova-plugin-media-with-compression where the
> exchange wav->m4a is done too.
> Strangely I can’t find much problems reported on stackoverflow, but this one
> seems to cover it
> http://stackoverflow.com/questions/12244111/failed-to-initialize-avaudiorecorder-null
> The last poster seem to indicate that the problem sneaked in in IOS 8
> (previously it was probably possible to record to a .wav file but with AAC
> content).
> Looking at the recordAudio() test for the plugin in tests/tests.js I can’t
> see that potential errors are actually causing the test to fail: they are
> just logged with console.log , so this may explain why the problem has not
> been detected by the tests.
--
This message was sent by Atlassian JIRA
(v6.3.15#6346)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]