如何在Ionic V1中调用Cordova插件

时间:2019-10-02 05:25:50

标签: angularjs ionic-v1

我在ionic v1中安装了cordova-plugin-media。但是,当我在浏览器中运行媒体时,该应用并未定义媒体。

ionic.bundle.js:26794 ReferenceError: Media is not defined
at ChildScope.$scope.playPodcast (controllers.js:1405)
at fn (eval at compile (ionic.bundle.js:27638), <anonymous>:4:232)
at ionic.bundle.js:65427
at ChildScope.$eval (ionic.bundle.js:30395)
at ChildScope.$apply (ionic.bundle.js:30495)
at HTMLElement.<anonymous> (ionic.bundle.js:65426)
at defaultHandlerWrapper (ionic.bundle.js:16787)
at HTMLElement.eventHandler (ionic.bundle.js:16775)
at triggerMouseEvent (ionic.bundle.js:2953)
at tapClick (ionic.bundle.js:2942)

这是我的代码

$scope.playPodcast = function($audioId) {
    new Media("http://www.viaviweb.in/envato/cc/online_mp3_app_demo/uploads/40655_Overboard.mp3").play();
}

2 个答案:

答案 0 :(得分:0)

只需快速搜索该插件的github页面即可了解使用该方法的方法。

特别是如果您要播放媒体文件,这是使用它的正确方法。

function playAudio(url) {
    // Play the audio file at url
    var my_media = new Media(url,
        // success callback
        function () { console.log("playAudio():Audio Success"); },
        // error callback
        function (err) { console.log("playAudio():Audio Error: " + err); }
    );

    // Play audio
    my_media.play();

    // Pause after 10 seconds
    setTimeout(function () {
        my_media.pause();
    }, 10000);
}

答案 1 :(得分:0)

好吧,根据您注入脚本文件的方式,您需要使用以下两种方式之一对其进行调用:

  1. 如果媒体插件本身是作为脚本文件加载到index.html中的,并且将其自身附加到全局名称空间,则将以下内容添加到您的app.js
angular.module('Media', [])
  .factory('Media', function () {
    return window.Media;
});

稍后,在您的app.js模块定义中,添加以下内容:

angular.module('myApp',
 [
  'ionic',
  'Media'
  ])
.run(
 [
   'ionicReady',
   'Media',
  function (
  ionicReady,  
  Media, 
) {
  //Media initialization code here
 }

这允许angular使用其依赖注入来确保“ Media”在主模块中初始化。如果要在应用程序中的其他位置使用它,则必须将其导入到其他模块中。

  1. 如果您使用的NgCordova为常见的Cordova插件提供了角度包装,那么您将以与导入其他AngularJS库相同的方式导入它。媒体插件here的示例代码。