我正在编写一个Ionic应用程序,我试图使用Cordova媒体(org.apache.cordova.media)播放一个org.apache.cordova.media文件。但是当我在JavaScript中使用媒体对象时,我得到:ReferenceError: Media is not defined
我使用了普通的JS和ngCordova,结果是一样的。
普通联合材料:
var media = new Media('js/components/timer/startBell.mp3');
media.play();
ngCordova风味:
var startBell source = ('js/components/timer/startBell.mp3');
var mediaSource = $cordovaMedia.newMedia(startBellSrc);
var promise = mediaSource.promise;
var mediaStatus = mediaSource.mediaStatus;
var media = mediaSource.media;
$cordovaMedia.play(media);
我对Cordova和Ionic都是新手,所以我不确定是否需要在app.js中添加一些内容:
angular.module('myApp', [
'ionic',
'my.custom.module'
])
.run(function ($ionicPlatform, $cordovaMedia) {
$ionicPlatform.ready(function () {
**//add some cordova media plugin initialization code here???**
// Hide the accessory bar by default (remove this to show the accessory bar above the keyboard
// for form inputs)
if (window.cordova && window.cordova.plugins.Keyboard) {
cordova.plugins.Keyboard.hideKeyboardAccessoryBar(true);
}
if (window.StatusBar) {
StatusBar.styleDefault();
}
});
})
全堆栈跟踪:
ReferenceError: Media is not defined
at Object.newMedia (http://localhost:8100/lib/ngCordova/dist/ng-cordova.js:1817:25)
at Object.countdown (http://localhost:8100/js/components/timer/timer-service.js:14:53)
at Scope.$scope.startTimer (http://localhost:8100/js/main/main-controller.js:6:30)
at http://localhost:8100/lib/ionic/js/ionic.bundle.js:18227:21
at http://localhost:8100/lib/ionic/js/ionic.bundle.js:42490:9
at Scope.$eval (http://localhost:8100/lib/ionic/js/ionic.bundle.js:20089:28)
at Scope.$apply (http://localhost:8100/lib/ionic/js/ionic.bundle.js:20187:23)
at HTMLButtonElement.<anonymous> (http://localhost:8100/lib/ionic/js/ionic.bundle.js:42489:13)
at http://localhost:8100/lib/ionic/js/ionic.bundle.js:10381:10
at Array.forEach (native)
发布于 2014-09-15 20:32:38
您正在使用ionic serve
方法预览您的应用程序,它无法运行Cordova (因为它只是一个浏览器,而不是移动环境)。您必须尝试通过在模拟器中运行应用程序来进行测试。
发布于 2016-06-07 03:40:57
由于杰里米说媒体不是运行在浏览器上,你应该在真正的设备上尝试它。如果您使用的是真正的设备,并且仍然有问题,那么以下所有步骤如下:
添加平台
ionic platform add android
ionic platform add ios
安装媒体插件
cordova plugin add cordova-plugin-media
在index.html文件中包含ng-cordova.js或ng-cordova.min.js。
<script src="lib/ngCordova/dist/ng-cordova.js"></script>
<script src="cordova.js"></script>
将ngCordova注入为角依赖项
angular.module('app', ['ionic', 'ngCordova'])
将$cordovaMedia和$ionicPlatform注入控制器,并在平台准备好后使用媒体插件
.controller('Ctrl', function($scope, $ionicPlatform, $cordovaMedia){
$ionicPlatform.ready(function() {
var src = ionic.Platform.isAndroid() ?
? "/android_asset/www/audio/src.mp3"
: "audio/src.mp3";
var src = new Media(crowdSrc, null, null, crowdCallback);
src.play();
})
})
我希望这能帮到你。
https://stackoverflow.com/questions/25836935
复制相似问题