(NATIVE AUDIO) Asset not found IOS


#1

Hello
I’m trying to play sounds using NativeAudio in my app.
On Android devices everything works, but not on IOS 10+.
"(NATIVE AUDIO) Asset not found." the sound files are stored in the correct location (and it works on Android).

Any ideas?


#2

Same here. Did you find something?


#3

same here ! Can’t find a solution


#4

Same issue. Ionic team any help?


#5

Provide some more information:
ionic info, package.json, link to “Native Audio”, code you use to play files etc.


#6

Hi, I’m with the exactly the same problem, please, help me…

that’s my code (tryied simple and complex preload)

this.nativeAudio.preloadComplex('complex', 'audio.mp3', 1, 1, 0).then((data) => {
        alert(data);
}, (error) => {
        alert(error);
});

this.nativeAudio.preloadSimple('simple', 'audio.mp3').then((data) => {
    alert(data);
}, (error) => {
    alert(error);
});

The audio.mp3 file are stored in src/audio.mp3
I also tryed ./audio.mp3, but no success

I think it can be a problem with code-push plugin because looks like the code-push place the files in a different location so the native-audio can’t find it, but I’m not sure if this is the real problem or how to resolve it…

That’s my Ionic info

cli packages: (B:\dev\Apps\Mobile\Orin\node_modules)

    @ionic/cli-utils  : 1.10.2
    ionic (Ionic CLI) : 3.10.3

global packages:

    Cordova CLI : 7.0.1

local packages:

    @ionic/app-scripts : 2.1.3
    Cordova Platforms  : android 6.2.3 browser 4.1.0 ios 4.4.0
    Ionic Framework    : ionic-angular 3.6.0

System:

    Android SDK Tools : 26.0.2
    Node              : v7.7.2
    npm               : 4.1.2
    OS                : Windows 10

my package.json

{
    ...
    "private": true,
    "scripts": {
        "clean": "ionic-app-scripts clean",
        "build": "ionic-app-scripts build",
        "lint": "ionic-app-scripts lint",
        "ionic:build": "ionic-app-scripts build",
        "ionic:serve": "ionic-app-scripts serve"
    },
    "dependencies": {
        "@angular/common": "4.1.3",
        "@angular/compiler": "4.1.3",
        "@angular/compiler-cli": "4.1.3",
        "@angular/core": "4.1.3",
        "@angular/forms": "4.1.3",
        "@angular/http": "4.1.3",
        "@angular/platform-browser": "4.1.3",
        "@angular/platform-browser-dynamic": "4.1.3",
        "@ionic-native/action-sheet": "^4.2.1",
        "@ionic-native/background-fetch": "^4.2.1",
        "@ionic-native/badge": "^4.2.1",
        "@ionic-native/code-push": "^4.2.1",
        "@ionic-native/core": "3.12.1",
        "@ionic-native/device": "^4.2.1",
        "@ionic-native/dialogs": "^4.2.1",
        "@ionic-native/media": "^4.2.1",
        "@ionic-native/native-audio": "^4.2.1",
        "@ionic-native/network": "^4.2.1",
        "@ionic-native/printer": "^4.2.1",
        "@ionic-native/splash-screen": "3.12.1",
        "@ionic-native/sqlite": "^4.2.1",
        "@ionic-native/status-bar": "3.12.1",
        "@ionic-native/three-dee-touch": "^4.2.1",
        "@ionic-native/toast": "^4.2.1",
        "@ionic/storage": "2.0.1",
        "chart.js": "^2.7.0",
        "code-push": "^2.0.1-beta",
        "cordova-android": "^6.2.3",
        "cordova-browser": "^4.1.0",
        "cordova-ios": "^4.4.0",
        "cordova-plugin-3dtouch": "^1.3.5",
        "cordova-plugin-actionsheet": "^2.3.3",
        "cordova-plugin-background-fetch": "~5.0.0",
        "cordova-plugin-badge": "~0.8.2",
        "cordova-plugin-code-push": "^1.9.7-beta",
        "cordova-plugin-compat": "^1.1.0",
        "cordova-plugin-console": "^1.0.7",
        "cordova-plugin-device": "^1.1.6",
        "cordova-plugin-dialogs": "^1.3.3",
        "cordova-plugin-file": "^4.3.3",
        "cordova-plugin-file-transfer": "^1.6.3",
        "cordova-plugin-media": "^3.0.1",
        "cordova-plugin-nativeaudio": "~3.0.9",
        "cordova-plugin-network-information": "^1.3.3",
        "cordova-plugin-splashscreen": "^4.0.3",
        "cordova-plugin-statusbar": "^2.2.3",
        "cordova-plugin-whitelist": "^1.3.2",
        "cordova-plugin-x-toast": "^2.6.0",
        "cordova-plugin-zip": "^3.1.0",
        "cordova-sqlite-storage": "~2.0.4",
        "de.appplant.cordova.plugin.printer": "~0.7.1",
        "ionic-angular": "3.6.0",
        "ionic-plugin-keyboard": "^2.2.1",
        "ionicons": "3.0.0",
        "ng2-charts": "^1.6.0",
        "rxjs": "5.4.0",
        "sw-toolbox": "3.6.0",
        "zone.js": "0.8.12"
    },
    "devDependencies": {
        "@ionic/app-scripts": "2.1.3",
        "ionic": "3.10.3",
        "typescript": "2.3.4"
    },
    ...
    "cordova": {
        "plugins": {
            "cordova-plugin-console": {},
            "cordova-plugin-device": {},
            "cordova-plugin-splashscreen": {},
            "cordova-plugin-statusbar": {},
            "cordova-plugin-whitelist": {},
            "ionic-plugin-keyboard": {},
            "cordova-plugin-code-push": {},
            "cordova-plugin-network-information": {},
            "cordova-plugin-x-toast": {},
            "cordova-plugin-3dtouch": {},
            "cordova-plugin-actionsheet": {},
            "cordova-plugin-background-fetch": {},
            "cordova-plugin-badge": {},
            "cordova-plugin-dialogs": {},
            "cordova-plugin-nativeaudio": {},
            "de.appplant.cordova.plugin.printer": {},
            "cordova-sqlite-storage": {},
            "cordova-plugin-media": {
                "MICROPHONE_USAGE_DESCRIPTION": " "
            }
        },
        "platforms": [
            "android",
            "browser",
            "ios"
        ]
    }
}

my config.xml file is

<?xml version='1.0' encoding='utf-8'?>
<widget id="br.org.crcmg.orin" version="1.0.0" xmlns="http://www.w3.org/ns/widgets" xmlns:cdv="http://cordova.apache.org/ns/1.0">
    ...
    <content src="index.html" />
    <access origin="*" />
    <allow-navigation href="http://ionic.local/*" />
    <allow-intent href="http://*/*" />
    <allow-intent href="https://*/*" />
    <allow-intent href="tel:*" />
    <allow-intent href="sms:*" />
    <allow-intent href="mailto:*" />
    <allow-intent href="geo:*" />
    <preference name="orientation" value="portrait" />
    <preference name="webviewbounce" value="false" />
    <preference name="UIWebViewBounce" value="false" />
    <preference name="DisallowOverscroll" value="true" />
    <preference name="android-minSdkVersion" value="16" />
    <preference name="BackupWebStorage" value="none" />
    <preference name="SplashMaintainAspectRatio" value="true" />
    <preference name="FadeSplashScreenDuration" value="300" />
    <preference name="SplashScreen" value="screen" />
    <preference name="AutoHideSplashScreen" value="false" />
    <preference name="ShowSplashScreen" value="true" />
    <preference name="SplashScreenDelay" value="30000" />
    <preference name="SplashShowOnlyFirstTime" value="false" />
    <platform name="android">
        <allow-intent href="market:*" />
        <icon density="ldpi" src="resources/android/icon/drawable-ldpi-icon.png" />
        <icon density="mdpi" src="resources/android/icon/drawable-mdpi-icon.png" />
        <icon density="hdpi" src="resources/android/icon/drawable-hdpi-icon.png" />
        <icon density="xhdpi" src="resources/android/icon/drawable-xhdpi-icon.png" />
        <icon density="xxhdpi" src="resources/android/icon/drawable-xxhdpi-icon.png" />
        <icon density="xxxhdpi" src="resources/android/icon/drawable-xxxhdpi-icon.png" />
        <splash density="land-ldpi" src="resources/android/splash/drawable-land-ldpi-screen.png" />
        <splash density="land-mdpi" src="resources/android/splash/drawable-land-mdpi-screen.png" />
        <splash density="land-hdpi" src="resources/android/splash/drawable-land-hdpi-screen.png" />
        <splash density="land-xhdpi" src="resources/android/splash/drawable-land-xhdpi-screen.png" />
        <splash density="land-xxhdpi" src="resources/android/splash/drawable-land-xxhdpi-screen.png" />
        <splash density="land-xxxhdpi" src="resources/android/splash/drawable-land-xxxhdpi-screen.png" />
        <splash density="port-ldpi" src="resources/android/splash/drawable-port-ldpi-screen.png" />
        <splash density="port-mdpi" src="resources/android/splash/drawable-port-mdpi-screen.png" />
        <splash density="port-hdpi" src="resources/android/splash/drawable-port-hdpi-screen.png" />
        <splash density="port-xhdpi" src="resources/android/splash/drawable-port-xhdpi-screen.png" />
        <splash density="port-xxhdpi" src="resources/android/splash/drawable-port-xxhdpi-screen.png" />
        <splash density="port-xxxhdpi" src="resources/android/splash/drawable-port-xxxhdpi-screen.png" />
    </platform>
    <platform name="ios">
        <allow-intent href="itms:*" />
        <allow-intent href="itms-apps:*" />
        <icon height="57" src="resources/ios/icon/icon.png" width="57" />
        <icon height="114" src="resources/ios/icon/icon@2x.png" width="114" />
        <icon height="40" src="resources/ios/icon/icon-40.png" width="40" />
        <icon height="80" src="resources/ios/icon/icon-40@2x.png" width="80" />
        <icon height="120" src="resources/ios/icon/icon-40@3x.png" width="120" />
        <icon height="50" src="resources/ios/icon/icon-50.png" width="50" />
        <icon height="100" src="resources/ios/icon/icon-50@2x.png" width="100" />
        <icon height="60" src="resources/ios/icon/icon-60.png" width="60" />
        <icon height="120" src="resources/ios/icon/icon-60@2x.png" width="120" />
        <icon height="180" src="resources/ios/icon/icon-60@3x.png" width="180" />
        <icon height="72" src="resources/ios/icon/icon-72.png" width="72" />
        <icon height="144" src="resources/ios/icon/icon-72@2x.png" width="144" />
        <icon height="76" src="resources/ios/icon/icon-76.png" width="76" />
        <icon height="152" src="resources/ios/icon/icon-76@2x.png" width="152" />
        <icon height="167" src="resources/ios/icon/icon-83.5@2x.png" width="167" />
        <icon height="29" src="resources/ios/icon/icon-small.png" width="29" />
        <icon height="58" src="resources/ios/icon/icon-small@2x.png" width="58" />
        <icon height="87" src="resources/ios/icon/icon-small@3x.png" width="87" />
        <splash height="1136" src="resources/ios/splash/Default-568h@2x~iphone.png" width="640" />
        <splash height="1334" src="resources/ios/splash/Default-667h.png" width="750" />
        <splash height="2208" src="resources/ios/splash/Default-736h.png" width="1242" />
        <splash height="1242" src="resources/ios/splash/Default-Landscape-736h.png" width="2208" />
        <splash height="1536" src="resources/ios/splash/Default-Landscape@2x~ipad.png" width="2048" />
        <splash height="2048" src="resources/ios/splash/Default-Landscape@~ipadpro.png" width="2732" />
        <splash height="768" src="resources/ios/splash/Default-Landscape~ipad.png" width="1024" />
        <splash height="2048" src="resources/ios/splash/Default-Portrait@2x~ipad.png" width="1536" />
        <splash height="2732" src="resources/ios/splash/Default-Portrait@~ipadpro.png" width="2048" />
        <splash height="1024" src="resources/ios/splash/Default-Portrait~ipad.png" width="768" />
        <splash height="960" src="resources/ios/splash/Default@2x~iphone.png" width="640" />
        <splash height="480" src="resources/ios/splash/Default~iphone.png" width="320" />
    </platform>
    <engine name="android" spec="^6.2.3" />
    <engine name="browser" spec="^4.1.0" />
    <engine name="ios" spec="^4.4.0" />
    <plugin name="cordova-plugin-3dtouch" spec="^1.3.5" />
    <plugin name="cordova-plugin-actionsheet" spec="^2.3.3" />
    <plugin name="cordova-plugin-background-fetch" spec="~5.0.0" />
    <plugin name="cordova-plugin-badge" spec="~0.8.2" />
    <plugin name="cordova-plugin-code-push" spec="^1.9.7-beta" />
    <plugin name="cordova-plugin-console" spec="^1.0.7" />
    <plugin name="cordova-plugin-device" spec="^1.1.6" />
    <plugin name="cordova-plugin-dialogs" spec="^1.3.3" />
    <plugin name="cordova-plugin-media" spec="^3.0.1">
        <variable name="MICROPHONE_USAGE_DESCRIPTION" value=" " />
    </plugin>
    <plugin name="cordova-plugin-nativeaudio" spec="~3.0.9" />
    <plugin name="cordova-plugin-network-information" spec="^1.3.3" />
    <plugin name="cordova-plugin-splashscreen" spec="^4.0.3" />
    <plugin name="cordova-plugin-statusbar" spec="^2.2.3" />
    <plugin name="cordova-plugin-whitelist" spec="^1.3.2" />
    <plugin name="cordova-plugin-x-toast" spec="^2.6.0" />
    <plugin name="cordova-sqlite-storage" spec="~2.0.4" />
    <plugin name="de.appplant.cordova.plugin.printer" spec="~0.7.1" />
    <plugin name="ionic-plugin-keyboard" spec="^2.2.1" />
</widget>

In app.module.ts I’m adding te plugin as a provider:

providers: [
        ...
        NativeAudio,

I get this error: (NATIVE AUDIO) Asset not found. (audio.mp3)


#7

Same here… I’m getting the same problem!


#8

Same issue… doesn’t seem to be a solution posted anywhere. Is anyone successfully using NativeAudio with Ionic 3? And if so, what relative asset path are you using???


#9

Same here! Push! Need a solution fast!


#10

Hi guys,

After I spend some time with this problem, my solution was to put the preload in the app.components.ts, after verify whether the platform is ready, like the tutorial below.

this.platform.ready().then(() = {

   this.smartAudio.preload('click', 'assets/sounds/sound0.mp3');

}

PS: I implemented the “smartAudio Provider” through this tutorial:


#11

Did you guys figure this one out?

I’m having a hard time getting this to work on iOS.
Works perfectly on Android and Browser.

Thanks in advance!


#12

How did you make it work on Android?


#13

I went throught that tutorial, but apps still has the same error. Could you please help us out?