Javascript Soundmanager2,在手机上从不同的起点播放歌曲

Javascript Soundmanager2,在手机上从不同的起点播放歌曲,javascript,html,html5-audio,soundmanager2,Javascript,Html,Html5 Audio,Soundmanager2,我想知道是否有人能给我一些建议,让我用soundmanager2在手机上播放歌曲的中间部分。我需要它在android 4+和IOS6及IOS7上工作。我有一个解决方案,但并不完美 我发现soundmanager2在从不同的歌曲起点播放音乐时会产生意想不到的效果,并且行为会因不同的设备而异 我也尝试过使用.currentTime的纯HTML5音频的相同解决方案,但是我对HTML5音频有完全相同的问题,并且由于soundmanager2使用HTML5,我感觉这个问题是相关的 到目前为止,我的解决方案

我想知道是否有人能给我一些建议,让我用soundmanager2在手机上播放歌曲的中间部分。我需要它在android 4+和IOS6及IOS7上工作。我有一个解决方案,但并不完美

我发现soundmanager2在从不同的歌曲起点播放音乐时会产生意想不到的效果,并且行为会因不同的设备而异

我也尝试过使用.currentTime的纯HTML5音频的相同解决方案,但是我对HTML5音频有完全相同的问题,并且由于soundmanager2使用HTML5,我感觉这个问题是相关的

到目前为止,我的解决方案是:

我发现确保歌曲从正确的起点播放的最佳方法是在歌曲开始播放后改变位置,而不是在歌曲开始播放前改变位置。然而,这样做的不良影响是,在位置改变开始之前,歌曲会短暂播放。我尝试将音量设置为0和100以“屏蔽”这一点,但一些移动设备忽略了这一点。这个解决方案在桌面上非常有效,但这还不够好

在soundManger中,播放歌曲时不会触发onplay事件,因为我调用.play();,它会立即触发。为了实现这一点,我需要使用soundManager.onPosition('scAudio',500,function..),我发现在大多数地方都可以使用500。如果我做的比那少,它就不会在IOS6中出现

有谁能提供一个更好的解决方案,而不是在换位开始之前播放歌曲

以下是我目前的代码:

        soundManager.setup({

        url: '/js/soundmanager2_flash9.swf',
        flashVersion: 9,
        preferFlash: false,
        debugMode: false,

        onready: function() {

            scAudio = soundManager.createSound({

                id: 'scAudio',
                url: audioUrl,
                autoLoad: true,
                volume: 0,
                position: startPoint

            });

            soundManager.onPosition('scAudio', 500, function() {

                scAudio.setPosition(startPoint)
                soundManager.setVolume('scAudio', 100)

            });

        }

    });

function onThumbnailTouch() {

    scAudio.play()
};

经过iOS 7测试,我已经成功使用SoundManager“onPosition”事件触发器。所以我在“点击”按钮事件中附加了类似的内容

var mobileAudioLoaded = false;
if (!mobileAudioLoaded) {
    soundPlayer.play();
    soundPlayer.onPosition(0, function () {
        if (!mobileAudioLoaded) {
            this.setPosition(50000); // start at 50 seconds
                mobileAudioLoaded = true;
            }
    });
}