2017-04-06 17 views
1

这个插件:media-with-compression几天前运行良好,但现在我在尝试记录时得到了这个:EXCEPTION:Uncaught(在promise ):类型错误:window.Media是不是构造media-plugin-with-compression-TypeError:window.Media不是构造函数

我已经宣布:

declare var window: any; 
declare var Media: any; 

而且我是用这种方式:

this.audioFile = new window.Media(this.audioDirectory + this.audioName, 
      ..... 

我不知道它是因为一个@ ionic-native的新版本,或者发生了什么,但是我几周没有碰到这个代码,现在它没有工作。

任何线索,如果与@离子本机的新版本,非本地插件工作不同?

谢谢!

+0

你能证明你的'package.json'文件? – Sampath

+0

当然:https://pastebin.com/jHcsMzTw – Mystearica

+0

你使用哪个插件? – Sampath

回答

0

您无法在浏览器上运行此操作。您必须在实际设备上运行此操作。

在这里你可以看到如何设置路径。 iOS Media Plugin

The trick on iOS AND Android is to use .toInternalURL() instead of .toURL() on the file object. This code will work perfectly on both platforms:

window.requestFileSystem(
    LocalFileSystem.PERSISTENT, 
    0, 
    function(fileSystem) { 
     fileSystem.root.getDirectory('app-data/main-packages/en/', {create: false}, function(sourceDir){ 
      sourceDir.getFile('2.mp3', {create: false}, function(file){ 
       console.log('file url: ', file.toInternalURL()); 
       var mymedia = new Media(file.toInternalURL()); 
       mymedia.play(); 
      }); 
     }); 
    }, 
    function(err){ 
     console.log('Error in requestFilesystem, err.code', err.code);      
    } 
); 
+0

Hi @Sampath,我正在使用Ionic2,这就是为什么我不能单独使用Media。我在真实设备上使用它,正如我所说的,它在几天前完美工作,但现在抛出构造函数错误。 – Mystearica

+0

从那以后你做了哪些改变? – Sampath

+0

我没有改变,这就是问题......我能想到的唯一一件它的离子原生。 – Mystearica