【问题标题】:sound stopped working phonegap media声音停止工作 phonegap 媒体
【发布时间】:2013-07-15 07:27:47
【问题描述】:
$(document).on('click', '#bar img', function () { 



    alphaLetter = $(this).data('club-id');
    audio_file_path = '/android_asset/www/audio/'+alphaLetter+'.mp3';


    var my_media = null;
     my_media = new Media(audio_file_path);

    my_media.play();




    });

以上是我播放声音的代码。它播放声音,但是当我重新启动我的项目时,它从那时起就停止了工作,并给出了这些错误;

 E/MediaPlayer(2306): error (-19, 0)
 E/MediaPlayer(2306): Attempt to call getDuration without a valid mediaplayer
 E/MediaPlayer(2306): error (-38, 0)
 E/MediaPlayer(2306): Error (-19,0)

【问题讨论】:

    标签: android jquery-mobile cordova


    【解决方案1】:

    这可能是由于您同时运行的媒体对象过多。声音结束后,您应该释放它。

    PhoneGap 文档是这样描述发布的:

    函数 media.release 是一个同步函数,用于释放 底层操作系统音频资源。这个功能是 对 Android 尤其重要,因为有有限数量的 用于媒体播放的 OpenCore 实例。开发人员应调用 当他们不再需要媒体资源时“释放”功能。

    我也遇到了同样的错误,在完成声音后使用重置对我来说效果很好。不过记得在声音完成后调用它,例如:

    var my_media = null;
    my_media = new Media(audio_file_path, function()
    {
       this.release();
    });
    
    my_media.play();
    

    如果您有兴趣,我已经写了更多关于here 的问题,但上述解决方案应该可以正常工作。

    【讨论】:

      【解决方案2】:

      似乎每当您尝试播放声音时都会弹出此错误,即使它在某个时刻没有完全加载 (Attempt to call getDuration)。

      我查阅了 Phonegap 文档,但找不到可以检查声音可用性的方法。你可以做的是:

      • 构建一个始终等待一段时间直到播放声音的计时器。

      • 在播放声音失败时使用var media = new Media(src, mediaSuccess, [mediaError], [mediaStatus]); 进行进一步处理。

      【讨论】:

        猜你喜欢
        • 2012-11-14
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-10-23
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多