IBM Worklight 6.1-无法使用Cordova播放本地媒体文件

迈克尔·米尔特

在Android模拟器中测试。

我正在尝试使用Cordova Media API来管理Worklight项目中本地存储的音频的播放。最初,我尝试更新项目以完成此任务,但未成功,因此,我决定使用Apache Cordova Media API页面上记录的完整示例。我使用了完整的示例来播放,暂停和停止音频文件。我所做的唯一更改是播放了在我的worklight项目中本地存储的音频文件。

但是,以上操作失败了...

我在示例项目中创建了一个新文件夹“ WavAudo”,其中包含要播放的音频的.mp3和.wav版本。

当我启动应用程序,我收到一个警报弹出了error.code,并且error.messageundefined使用Chrome调试器我看到了,关于deviceready我得到Uncaught ReferenceError Media is not defined

我相信我已经尝试了所有可能的路径和文件组合来定位文件,但是我一定错过了一些东西。

      <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
              "http://www.w3.org/TR/html4/strict.dtd">
<html>
  <head>
    <title>Media Example</title>

    <script type="text/javascript" charset="utf-8" src="cordova.js"></script>
    <script type="text/javascript" charset="utf-8">

    // Wait for device API libraries to load
    //
    document.addEventListener("deviceready", onDeviceReady, false);

    // device APIs are available
    //
    function onDeviceReady() {
        playAudio("/android_asset/www/WavAudio/16300.mp3");
    }

    // Audio player
    //
    var my_media = null;
    var mediaTimer = null;

    // Play audio
    //
    function playAudio(src) {
        // Create Media object from src
        my_media = new Media(src, onSuccess, onError);

        // Play audio
        my_media.play();

        // Update my_media position every second
        if (mediaTimer == null) {
            mediaTimer = setInterval(function() {
                // get my_media position
                my_media.getCurrentPosition(
                    // success callback
                    function(position) {
                        if (position > -1) {
                            setAudioPosition((position) + " sec");
                        }
                    },
                    // error callback
                    function(e) {
                        console.log("Error getting pos=" + e);
                        setAudioPosition("Error: " + e);
                    }
                );
            }, 1000);
        }
    }

    // Pause audio
    //
    function pauseAudio() {
        if (my_media) {
            my_media.pause();
        }
    }

    // Stop audio
    //
    function stopAudio() {
        if (my_media) {
            my_media.stop();
        }
        clearInterval(mediaTimer);
        mediaTimer = null;
    }

    // onSuccess Callback
    //
    function onSuccess() {
        console.log("playAudio():Audio Success");
    }

    // onError Callback
    //
    function onError(error) {
        alert('code: '    + error.code    + '\n' +
              'message: ' + error.message + '\n');
    }

    // Set audio position
    //
    function setAudioPosition(position) {
        document.getElementById('audio_position').innerHTML = position;
    }

    </script>
  </head>
  <body>
    <a href="#" class="btn large" onclick="playAudio
    ('/android_asset/www/WavAudio/16300.mp3');">Play Audio</a>
    <a href="#" class="btn large" onclick="pauseAudio();">Pause Playing Audio</a>
    <a href="#" class="btn large" onclick="stopAudio();">Stop Playing Audio</a>
    <p id="audio_position"></p>
  </body>

我也将这些添加到Android Manifest:

 <uses-permission android:name="android.permission.RECORD_AUDIO" />
 <uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS" />
 <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />   
伊丹·阿达(Idan Adar)

Cordova网站上提供的示例代码有效,但是看起来它们指向的URL已损坏。用另一个替换它,然后它起作用了。

至于播放本地媒体文件,您需要提供媒体文件所在位置的完整路径,该位置将在生成的Android项目中例如,如果您common\audio在Worklight应用程序中创建一个文件夹并在其中放置一个.mp3文件,则需要使用以下路径(在HTML或JavaScript中,或者根据需要...):

<a href="#" onclick="playAudio('/android_asset/www/default/audio/myMediaFile.mp3');">Play Audio</a>

这是因为在Worklight中,每个应用程序都被视为“皮肤”。有一个“默认”皮肤,如果添加另一个,它将在www文件夹中有其自己的文件夹。

示例项目:Android Cordova Media API


PS,我认为将示例原样从Cordova复制粘贴到Worklight项目中并不是一个好习惯。

  • 没有可链接到的cordova.js。
  • 聆听是多余的,deviceready因为这是在内部处理的。这样说:如果您已经到达wlCommonInit(),那就很好了。
  • 除非您想要这些权限所提供的内容,否则无需添加额外的权限...

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

使用IBM Worklight 6(juno eclipse)安装jazz 4.0.2插件会导致worklight的功能下降

来自分类Dev

IBM的Worklight xcode .framework文件

来自分类Dev

IBM Worklight 6.0-无法访问Worklight Server

来自分类Dev

IBM Worklight 6.1-无法迁移Worklight项目

来自分类Dev

无法在IBM Worklight上集成Google Maps

来自分类Dev

serverSessionTimeout无法正常工作IBM Worklight

来自分类Dev

无法通过IBM Worklight部署Android应用

来自分类Dev

IBM Worklight:在iOS中使用本机页面

来自分类Dev

IBM Worklight-在Android中使用SQLite?

来自分类Dev

使用IBM Worklight和Sencha Touch 2.2.1

来自分类Dev

如何使用IBM Worklight 6.2创建SOAPAdater?

来自分类Dev

IBM Worklight:请求每<1秒调用一次Worklight服务器

来自分类Dev

在IBM Worklight中使用katzer本地通知

来自分类Dev

onCLickListener Javascript无法在IBM Worklight中使用此dojo代码

来自分类Dev

Maven and IBM worklight

来自分类Dev

Maven和IBM Worklight

来自分类Dev

IBM Worklight离线支持

来自分类Dev

IBM MobileFirst / Worklight JSON

来自分类Dev

将定制的cordova插件添加到IBM Worklight 6.1

来自分类Dev

如何在IBM Worklight中导入Cordova Apache插件?

来自分类Dev

IBM Worklight 6.2:JMX配置错误。无法获得MBean

来自分类Dev

无法在Eclipse ADT中安装IBM Worklight插件

来自分类Dev

IBM Worklight 6.1-无法正常工作的Dojo视图过渡

来自分类Dev

由于依赖关系而无法安装IBM Worklight插件

来自分类Dev

IBM Worklight 6.2:JMX配置错误。无法获得MBean

来自分类Dev

IBM Worklight-生成的Android项目.apk的文件大小

来自分类Dev

IBM Worklight 6.1.0.0:Android环境缺少某些文件

来自分类Dev

IBM Worklight-从适配器加载属性文件

来自分类Dev

IBM Worklight-无法同时在Worklight Console和设备中更改应用程序图标

Related 相关文章

  1. 1

    使用IBM Worklight 6(juno eclipse)安装jazz 4.0.2插件会导致worklight的功能下降

  2. 2

    IBM的Worklight xcode .framework文件

  3. 3

    IBM Worklight 6.0-无法访问Worklight Server

  4. 4

    IBM Worklight 6.1-无法迁移Worklight项目

  5. 5

    无法在IBM Worklight上集成Google Maps

  6. 6

    serverSessionTimeout无法正常工作IBM Worklight

  7. 7

    无法通过IBM Worklight部署Android应用

  8. 8

    IBM Worklight:在iOS中使用本机页面

  9. 9

    IBM Worklight-在Android中使用SQLite?

  10. 10

    使用IBM Worklight和Sencha Touch 2.2.1

  11. 11

    如何使用IBM Worklight 6.2创建SOAPAdater?

  12. 12

    IBM Worklight:请求每<1秒调用一次Worklight服务器

  13. 13

    在IBM Worklight中使用katzer本地通知

  14. 14

    onCLickListener Javascript无法在IBM Worklight中使用此dojo代码

  15. 15

    Maven and IBM worklight

  16. 16

    Maven和IBM Worklight

  17. 17

    IBM Worklight离线支持

  18. 18

    IBM MobileFirst / Worklight JSON

  19. 19

    将定制的cordova插件添加到IBM Worklight 6.1

  20. 20

    如何在IBM Worklight中导入Cordova Apache插件?

  21. 21

    IBM Worklight 6.2:JMX配置错误。无法获得MBean

  22. 22

    无法在Eclipse ADT中安装IBM Worklight插件

  23. 23

    IBM Worklight 6.1-无法正常工作的Dojo视图过渡

  24. 24

    由于依赖关系而无法安装IBM Worklight插件

  25. 25

    IBM Worklight 6.2:JMX配置错误。无法获得MBean

  26. 26

    IBM Worklight-生成的Android项目.apk的文件大小

  27. 27

    IBM Worklight 6.1.0.0:Android环境缺少某些文件

  28. 28

    IBM Worklight-从适配器加载属性文件

  29. 29

    IBM Worklight-无法同时在Worklight Console和设备中更改应用程序图标

热门标签

归档