Android上的Rhomobile 5.4中的Mp3 / Wav播放

时间:2016-09-23 16:20:57

标签: android audio rhomobile

我有一个试图使用以下代码播放小型声音文件的应用程序:

Alert.play_file("/public/audio/" + $audio_file + ".mp3", "audio/x-mp3") if Configuration.current.audio_prompt?

当我使用此代码时,应用程序会抛出一个"服务器错误"看起来像这样:

enter image description here

我尝试过使用媒体播放器API代替Alert API,但收到的错误基本相同。

这是编解码器问题吗?

对于Wav文件(是的,wav文件正确指向而不是那些行中的mp3),不会抛出错误,但声音本身不会播放。

修改

我终于能够在此错误期间获得一些logcat数据,并收到了:

  

09-25 19:51:03.122 8891 8948 I APP:I 09/25/2016 19:51:03:122 000022f4 HttpServer | GC结束。   09-25 19:51:03.123 8891 8948 I APP:I 09/25/2016 19:51:03:123 000022f4 HttpServer |流程URI:' / app / Animation / draw'   09-25 19:51:03.124 8891 8948 I APP:I 09/25/2016 19:51:03:124 000022f4 APP | RHO服务:/ app / Animation / draw   09-25 19:51:03.125 8891 8948 I APP:I 09/25/2016 19:51:03:124 000022f4 APP |参数:{" char_id" =>" 6"," ajax" =>"","运行&#34 ; =>" 1"}   09-25 19:51:03.131 500 500 V AudioFlinger:从8891释放55为-1   09-25 19:51:03.131 500 500 V AudioFlinger:将refcount减少为0   09-25 19:51:03.131 500 500 V AudioFlinger:清除陈旧效果   09-25 19:51:03.132 8891 8948 E ExtMediaPlayer-JNI:无法找到QCMediaPlayer ....   09-25 19:51:03.132 8891 8948 D MediaPlayer-JNI:JNIMediaPlayerFactory:bIsQCMediaPlayerPresent 0   09-25 19:51:03.132 8891 8948 E ExtMediaPlayer-JNI:无法找到QCMediaPlayer ....   09-25 19:51:03.132 8891 8948 D MediaPlayer-JNI:JNIMediaPlayerFactory:bIsQCMediaPlayerPresent 0   09-25 19:51:03.132 500 4043 V AudioFlinger:从8891获得56,为-1   09-25 19:51:03.132 500 4043 V AudioFlinger:为56添加了新条目   09-25 19:51:03.133 8891 8948 I APP:E 09/25/2016 19:51:03:133 000022f4 RhoFileApi |无法打开文件描述符:/public/audio/xing4.mp3:打开失败:ENOENT(没有这样的文件或目录)   09-25 19:51:03.133 8891 8948 I APP:E 09/25/2016 19:51:03:133 000022f4 NotificationSingleton |空值   09-25 19:51:03.133 8891 8948 I APP:java.lang.IllegalArgumentException   09-25 19:51:03.133 8891 8948 I APP:at android.media.MediaPlayer._setDataSource(Native Method)   09-25 19:51:03.133 8891 8948 I APP:at android.media.MediaPlayer.setDataSource(MediaPlayer.java:1133)   09-25 19:51:03.133 8891 8948 I APP:at android.media.MediaPlayer.setDataSource(MediaPlayer.java:1118)   09-25 19:51:03.133 8891 8948 I APP:at com.rho.notification.NotificationSingleton.playFile(NotificationSingleton.java:168)   09-25 19:51:03.133 8891 8948 I APP:at com.rho.notification.NotificationSingletonBase $ playFileTask.run(NotificationSingletonBase.java:106)   09-25 19:51:03.133 8891 8948 I APP:at com.rhomobile.rhodes.api.MethodExecutor.run(MethodExecutor.java:11)   09-25 19:51:03.133 8891 8948 I APP:E 09/25/2016 19:51:03:133 000022f4 MethodResult |回调:,数据:;标签ID:-1; resultType:typeError;结果:" null"   09-25 19:51:03.134 8891 8948 I APP:I 09/25/2016 19:51:03:133 000022f4 APP |应用错误:   09-25 19:51:03.134 8891 8948 I APP:lib / RhoNotificationApi.rb:53:in playFile' 09-25 19:51:03.134 8891 8948 I APP : lib/RhoNotificationApi.rb:53:in play_file'   09-25 19:51:03.134 8891 8948 I APP:apps / app / Animation / animation_controller.rb:273:draw' 09-25 19:51:03.134 8891 8948 I APP : lib/rho/rhocontroller.rb:101:in发送'   09-25 19:51:03.134 8891 8948 I APP:lib / rho / rhoapplication.rb:217:serve' 09-25 19:51:03.134 8891 8948 I APP : lib/rho/rho.rb:836:in发送'   09-25 19:51:03.135 8891 8948 I APP:I 09/25/2016 19:51:03:135 000022f4 HttpServer | GC启动。   09-25 19:51:03.153 8891 8891 W cr_BindingManager:无法调用determinVisibility() - 从未看到pid的连接:8891   09-25 19:51:03.162 8891 8891 I APP:I 09/25/2016 19:51:03:162 000022bb WebViewSingleton | onNavigateComplete<<<<<<<<<<<<<<<<<<<<<<<<<<<< ;<<<<<<<<<<<<<<<<<<<<<<<<&LT ;<<<<<<<<<<<<<<<   09-25 19:51:03.162 721 721 I MSM-irqbalance:决定将IRQ115从CPU0移到CPU3   09-25 19:51:03.244 514 628 E ThermalEngine:====输入sched_bmhb_cs_gov - > vs_temp = 305 ===   09-25 19:51:03.250 8891 8948 I APP:I 09/25/2016 19:51:03:250 000022f4 HttpServer | GC结束。

看起来最相关的一点是:

RhoFileApi |无法打开文件描述符:/public/audio/xing4.mp3:打开失败:ENOENT(没有这样的文件或目录)

这似乎表明文件丢失或位置不正确,但这肯定是我文件所在的位置。

我在这里发现了一些类似问题的帖子:

https://developer.zebra.com/thread/4416

https://developer.zebra.com/thread/1787

但他们的解决方案无效。我没有尝试将文件夹明确地称为"警告"而不是"音频"在公共文件夹中,但我不明白为什么这很重要。

1 个答案:

答案 0 :(得分:0)

现在修复。对于后来出现的问题,问题是文件位置需要从绝对位置引用,这可以这样做:

{
    "name": "username/glide-user",
    "description": "Module For Zend Framework 2",
    "type": "library",
    "license": "BSD-3-Clause",
    "homepage": "https://github.com/username/GlideUser",
    "keywords": [
        "zf2",
        "zfc-user",
        "bjyauthorize"
    ],
    "authors": [
        {
            "name": "Haris Mehmood",
            "email": "abc@outlook.com",
            "homepage": "abc.com",
            "role": "Developer"
        }
    ],
    "minimum-stability": "dev",
    "prefer-stable": true,
    "require": {
        "php": ">=5.3.3",
        "bjyoungblood/bjy-authorize": "1.4.0"
    },
    "autoload": {
        "psr-0": {
            "GlideUser\\": "src/"
        }
    }
}