inway / flutter_ringtone_player

Simple Flutter plugin to play ringtone, alarm & notification sounds
MIT License
92 stars 57 forks source link

FileNotFoundException but notification is played #4

Closed JankoLancer closed 2 years ago

JankoLancer commented 4 years ago

I get this exception every time I run FlutterRingtonePlayer.playNotification(), jet sound is played anyway. Strange is that every time the notification sounds different. Device is: Xiaomi Mi 9T Pro

D/MediaPlayer(32207): setDataSource() actualUri=file:///system/media/audio/ui/BirdCicadaNotificationDay1.ogg W/MediaPlayer(32207): Couldn't open content://0@settings/system/notification_sound_cache W/MediaPlayer(32207): java.io.FileNotFoundException: open failed: ENOENT (No such file or directory) W/MediaPlayer(32207): at android.database.DatabaseUtils.readExceptionWithFileNotFoundExceptionFromParcel(DatabaseUtils.java:149) W/MediaPlayer(32207): at android.content.ContentProviderProxy.openTypedAssetFile(ContentProviderNative.java:705) W/MediaPlayer(32207): at android.content.ContentResolver.openTypedAssetFileDescriptor(ContentResolver.java:1702) W/MediaPlayer(32207): at android.content.ContentResolver.openAssetFileDescriptor(ContentResolver.java:1518) W/MediaPlayer(32207): at android.content.ContentResolver.openAssetFileDescriptor(ContentResolver.java:1435) W/MediaPlayer(32207): at android.media.MediaPlayer.attemptDataSource(MediaPlayer.java:1154) W/MediaPlayer(32207): at android.media.MediaPlayer.setDataSource(MediaPlayer.java:1103) W/MediaPlayer(32207): at android.media.MediaPlayer.setDataSource(MediaPlayer.java:1019) W/MediaPlayer(32207): at android.media.Ringtone.setUri(Ringtone.java:332) W/MediaPlayer(32207): at android.media.RingtoneManager.getRingtone(RingtoneManager.java:728) W/MediaPlayer(32207): at android.media.RingtoneManager.getRingtone(RingtoneManager.java:703) W/MediaPlayer(32207): at android.media.RingtoneManager.getRingtone(RingtoneManager.java:666) W/MediaPlayer(32207): at io.inway.ringtone.player.FlutterRingtonePlayerPlugin.onMethodCall(FlutterRingtonePlayerPlugin.java:74) W/MediaPlayer(32207): at io.flutter.plugin.common.MethodChannel$IncomingMethodCallHandler.onMessage(MethodChannel.java:231) W/MediaPlayer(32207): at io.flutter.embedding.engine.dart.DartMessenger.handleMessageFromDart(DartMessenger.java:93) W/MediaPlayer(32207): at io.flutter.embedding.engine.FlutterJNI.handlePlatformMessage(FlutterJNI.java:642) W/MediaPlayer(32207): at android.os.MessageQueue.nativePollOnce(Native Method) W/MediaPlayer(32207): at android.os.MessageQueue.next(MessageQueue.java:336) W/MediaPlayer(32207): at android.os.Looper.loop(Looper.java:181) W/MediaPlayer(32207): at android.app.ActivityThread.main(ActivityThread.java:7520) W/MediaPlayer(32207): at java.lang.reflect.Method.invoke(Native Method) W/MediaPlayer(32207): at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:539) W/MediaPlayer(32207): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:950) D/Ringtone(32207): Successfully created local player D/AudioManager(32207): getStreamVolume isRestricted mode = 0

SPodjasek commented 2 years ago

@JankoLancer Please verify fix from #29 published in v3.1.1

JankoLancer commented 2 years ago

Sorry, I am not using this anymore.

SPodjasek commented 2 years ago

Ok, closing anyway

bungabear commented 2 years ago

AOSP Android 10 Flutter 3.0.0 flutter_ringtone_player v3.2.0 has a same issue

FlutterRingtonePlayer.play(
    fromAsset: 'audio/card_success.wav',
    looping: false,
    asAlarm: true,
  );

When I call above function, the sound played well. But some log are printed.

V/MediaPlayer(14419): resetDrmState:  mDrmInfo=null mDrmProvisioningThread=null mPrepareDrmInProgress=false mActiveDrmScheme=false
V/MediaPlayer(14419): cleanDrmObj: mDrmObj=null mDrmSessionId=null
V/MediaPlayer(14419): resetDrmState:  mDrmInfo=null mDrmProvisioningThread=null mPrepareDrmInProgress=false mActiveDrmScheme=false
V/MediaPlayer(14419): cleanDrmObj: mDrmObj=null mDrmSessionId=null
W/MediaPlayer(14419): Couldn't open /data/user/0/{packagename}/cache/audio/card_success.wav
W/MediaPlayer(14419): java.io.FileNotFoundException: No content provider: /data/user/0/{packagename}/cache/audio/card_success.wav
W/MediaPlayer(14419):   at android.content.ContentResolver.openTypedAssetFileDescriptor(ContentResolver.java:1675)
W/MediaPlayer(14419):   at android.content.ContentResolver.openAssetFileDescriptor(ContentResolver.java:1505)
W/MediaPlayer(14419):   at android.content.ContentResolver.openAssetFileDescriptor(ContentResolver.java:1422)
W/MediaPlayer(14419):   at android.media.MediaPlayer.attemptDataSource(MediaPlayer.java:1101)
W/MediaPlayer(14419):   at android.media.MediaPlayer.setDataSource(MediaPlayer.java:1073)
W/MediaPlayer(14419):   at android.media.MediaPlayer.setDataSource(MediaPlayer.java:1001)
W/MediaPlayer(14419):   at android.media.Ringtone.setUri(Ringtone.java:332)
W/MediaPlayer(14419):   at android.media.RingtoneManager.getRingtone(RingtoneManager.java:728)
W/MediaPlayer(14419):   at android.media.RingtoneManager.getRingtone(RingtoneManager.java:703)
W/MediaPlayer(14419):   at android.media.RingtoneManager.getRingtone(RingtoneManager.java:666)
W/MediaPlayer(14419):   at io.inway.ringtone.player.FlutterRingtonePlayerPlugin.onMethodCall(FlutterRingtonePlayerPlugin.java:94)
W/MediaPlayer(14419):   at io.flutter.plugin.common.MethodChannel$IncomingMethodCallHandler.onMessage(MethodChannel.java:262)
W/MediaPlayer(14419):   at io.flutter.embedding.engine.dart.DartMessenger.invokeHandler(DartMessenger.java:295)
W/MediaPlayer(14419):   at io.flutter.embedding.engine.dart.DartMessenger.lambda$dispatchMessageToQueue$0$DartMessenger(DartMessenger.java:319)
W/MediaPlayer(14419):   at io.flutter.embedding.engine.dart.-$$Lambda$DartMessenger$TsixYUB5E6FpKhMtCSQVHKE89gQ.run(Unknown Source:12)
W/MediaPlayer(14419):   at android.os.Handler.handleCallback(Handler.java:883)
W/MediaPlayer(14419):   at android.os.Handler.dispatchMessage(Handler.java:100)
W/MediaPlayer(14419):   at android.os.Looper.loop(Looper.java:214)
W/MediaPlayer(14419):   at android.app.ActivityThread.main(ActivityThread.java:7397)
W/MediaPlayer(14419):   at java.lang.reflect.Method.invoke(Native Method)
W/MediaPlayer(14419):   at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:492)
W/MediaPlayer(14419):   at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:935)
D/Ringtone(14419): Successfully created local player
W/Ringtone(14419): Use of stream types is deprecated for operations other than volume control
W/Ringtone(14419): See the documentation of setStreamType() for what to use instead with android.media.AudioAttributes to qualify your playback use case
V/MediaPlayer(14419): resetDrmState:  mDrmInfo=null mDrmProvisioningThread=null mPrepareDrmInProgress=false mActiveDrmScheme=false
V/MediaPlayer(14419): cleanDrmObj: mDrmObj=null mDrmSessionId=null
V/MediaPlayer(14419): resetDrmState:  mDrmInfo=null mDrmProvisioningThread=null mPrepareDrmInProgress=false mActiveDrmScheme=false
V/MediaPlayer(14419): cleanDrmObj: mDrmObj=null mDrmSessionId=null
W/MediaPlayer(14419): Couldn't open /data/user/0/{packagename}/cache/audio/card_success.wav
W/MediaPlayer(14419): java.io.FileNotFoundException: No content provider: /data/user/0/{packagename}/cache/audio/card_success.wav
W/MediaPlayer(14419):   at android.content.ContentResolver.openTypedAssetFileDescriptor(ContentResolver.java:1675)
W/MediaPlayer(14419):   at android.content.ContentResolver.openAssetFileDescriptor(ContentResolver.java:1505)
W/MediaPlayer(14419):   at android.content.ContentResolver.openAssetFileDescriptor(ContentResolver.java:1422)
W/MediaPlayer(14419):   at android.media.MediaPlayer.attemptDataSource(MediaPlayer.java:1101)
W/MediaPlayer(14419):   at android.media.MediaPlayer.setDataSource(MediaPlayer.java:1073)
W/MediaPlayer(14419):   at android.media.MediaPlayer.setDataSource(MediaPlayer.java:1001)
W/MediaPlayer(14419):   at android.media.Ringtone.setUri(Ringtone.java:332)
W/MediaPlayer(14419):   at android.media.Ringtone.setAudioAttributes(Ringtone.java:141)
W/MediaPlayer(14419):   at android.media.Ringtone.setStreamType(Ringtone.java:112)
W/MediaPlayer(14419):   at io.inway.ringtone.player.FlutterRingtonePlayerPlugin.onMethodCall(FlutterRingtonePlayerPlugin.java:120)
W/MediaPlayer(14419):   at io.flutter.plugin.common.MethodChannel$IncomingMethodCallHandler.onMessage(MethodChannel.java:262)
W/MediaPlayer(14419):   at io.flutter.embedding.engine.dart.DartMessenger.invokeHandler(DartMessenger.java:295)
W/MediaPlayer(14419):   at io.flutter.embedding.engine.dart.DartMessenger.lambda$dispatchMessageToQueue$0$DartMessenger(DartMessenger.java:319)
W/MediaPlayer(14419):   at io.flutter.embedding.engine.dart.-$$Lambda$DartMessenger$TsixYUB5E6FpKhMtCSQVHKE89gQ.run(Unknown Source:12)
W/MediaPlayer(14419):   at android.os.Handler.handleCallback(Handler.java:883)
W/MediaPlayer(14419):   at android.os.Handler.dispatchMessage(Handler.java:100)
W/MediaPlayer(14419):   at android.os.Looper.loop(Looper.java:214)
W/MediaPlayer(14419):   at android.app.ActivityThread.main(ActivityThread.java:7397)
W/MediaPlayer(14419):   at java.lang.reflect.Method.invoke(Native Method)
W/MediaPlayer(14419):   at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:492)
W/MediaPlayer(14419):   at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:935)