【问题标题】:AudioPlayer Error: stopPlaying() called during invalid state: 0AudioPlayer 错误:在无效状态期间调用 stopPlaying():0
【发布时间】:2011-05-29 14:40:42
【问题描述】:

当我尝试使用 Phonegap 播放声音时,出现以下错误:

05-29 16:26:14.225  1749  2777 I System.out: AudioPlayer Error: stopPlaying() called during invalid state: 0
05-29 16:26:14.257  1749  2778 W System.err: java.io.FileNotFoundException: www/sounds/863.ogg
05-29 16:26:14.257  1749  2778 W System.err:    at android.content.res.AssetManager.openAssetFd(Native Method)
05-29 16:26:14.257  1749  2778 W System.err:    at android.content.res.AssetManager.openFd(AssetManager.java:331)
05-29 16:26:14.257  1749  2778 W System.err:    at com.phonegap.AudioPlayer.startPlaying(AudioPlayer.java:201)
05-29 16:26:14.257  1749  2778 W System.err:    at com.phonegap.AudioHandler.startPlayingAudio(AudioHandler.java:181)
05-29 16:26:14.257  1749  2778 W System.err:    at com.phonegap.AudioHandler.execute(AudioHandler.java:64)
05-29 16:26:14.257  1749  2778 W System.err:    at com.phonegap.api.PluginManager$1.run(PluginManager.java:86)
05-29 16:26:14.257  1749  2778 W System.err:    at java.lang.Thread.run(Thread.java:1096)

这是我的播放功能:

lastMedia = null
function play(id){
    alert('playing ' + id)
    if (lastMedia){
        lastMedia.stop()
        lastMedia.release()
    }
    lastMedia = new Media('/android_asset/www/sounds/'+id+'.ogg', function(){}/*, function(err){alert('error: ' + err)}*/)
    lastMedia.play()
}

有什么想法吗?

【问题讨论】:

    标签: javascript android cordova


    【解决方案1】:

    您可能想要做的一件事是确保您尝试停止当前正在播放的内容。像这样的:

    if (lastMedia != null && lastMedia.isPlaying()){
        lastMedia.stop()
        lastMedia.release()
    }
    

    【讨论】:

    【解决方案2】:

    // 像这样初始化媒体
    `

    lastMedia =
        new Media('/android_asset/www/sounds/'+id+'.ogg', 
                function(){}, 
                function(err){alert('error: ' + err)}, 
                function(statusCode){
                switch(statusCode){
                 case Media.MEDIA_PAUSED:
                 case Media.MEDIA_STOPPED:
                    lastMedia = null;
                    break;
                 default:
                    break;
            }});
    

    `

    // 媒体状态改变时调用的最后一个回调。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-05-02
      • 2013-01-29
      • 2018-06-24
      相关资源
      最近更新 更多