javascript - 在ionic中播放外部音频

标签 javascript html css angularjs

我有几个外部音频文件,我想在 ionic 应用程序中播放,我正在使用“ng-repeat”来获取所有音频文件。但问题是第一个播放的音频,其他播放相同的音频。换句话说,如果我播放 Don Moen 的“God is good”并转到下一个文件说“Christ Tomlin 的 Amazing Love”并尝试播放它,它仍然是“God is good”。即使我点击了“Christ Tomlin 的奇妙爱情”的播放按钮。

这是我的 Controller

.controller('AudioCtrl', function($scope, $http,  $cordovaMedia, $ionicLoading, $window) {

 $scope.playNow = function(src, index){
        
        if (typeof(media) !== 'undefined') {
            media.play();
        }
        else{
            media = null;
            media = new Media(src, null, null, function(status){
                if (status == 1) {
                    $ionicLoading.show
                     $ionicLoading.show({template: 'Please Wait...'});
                    console.log('loading')
                }else if(status == 2){
                  $ionicLoading.hide();
                    console.log('running');
                }
            })
            media.play(media) 
        }
               
    }
 $scope.pauseNow = function(){
        if (typeof(media) !== 'undefined') {
            media.pause();
        };
    }

    $scope.stopNow = function () {
        if (typeof(media) !== 'undefined') {
            media.stop();
        };
    }

})

<ion-list >
            <ion-item class="item item-avatar" ng-repeat="data in datas | filter:name" >
                <div class="row">
                    <div class="col">

                        <i class="ion-pause media-player-icon" ng-click="pauseNow()"></i>

                        <i class="ion-play media-player-icon" ng-click="playNow('http://inomotech.com/mobileapp/uploads/'+'{{data.audio_name}}', {{data.id}})" id="media-play"></i>

                        <i class="ion-stop media-player-icon-stop" id="media-play" ng-click="stopNow()"></i>

                        <i class="ion-android-download media-player-icon-download"></i>

                        <div class="audio-title"> {{data.title}}</div>
                        <div class="lyric-author">~ {{data.created_at}}</div>
                    </div>
                </div>
                <br/>
            </ion-item>
        </ion-list>

如果能提供一些帮助,我将不胜感激,谢谢。

最佳答案

Plnkr 会有所帮助,但查看您的代码逻辑,媒体播放器将使用源文件实例化,此后,没有源的转换。

因此每次调用 PlayNow 时,您都需要检查播放器是否已实例化(如果未实例化播放器)并更改媒体源。

关于javascript - 在ionic中播放外部音频,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28567139/

相关文章:

javascript - 无法在 Angular 组件中设置绑定(bind)属性的值

javascript - 如何在表格行中生成动态按钮并在单击按钮时打开新页面

html - overflow-x 也隐藏了 overflow-y

html - 如何将 <td> 的宽度设置为自动?

forms - 删除 bootstrap 3 上文本输入的边框

html - 如何使用 css 创建此边框

javascript - HTML 表单,使 Tab 键触发缩进?

javascript:React - 限制循环/ map 中每行呈现的组件(或列)数量

javascript - 修复 Popup 顺利抬起

javascript - 将变量传递到 Ionic Framework 页面(基于 AngularJS)