代码之家  ›  专栏  ›  技术社区  ›  i_user

当用户点击播放其他音频时停止第一个音频

  •  0
  • i_user  · 技术社区  · 9 年前

    我正在用jQuery mobile制作一个音频应用程序,它是用phonegap编译的。音频正常播放,但问题是当播放音频时,您点击新的音频进行播放。第一个音频没有停止,但仍继续播放第二个音频。我想知道当用户点击第二个音频文件时,我如何找到停止第一个音频播放的方法。

    // JavaScript Document
    
    
    
            // Wait for Cordova to load
            //
            document.addEventListener("deviceready", onDeviceReady, false);
    
            // Cordova is ready
            //
    
    
           function play2face() {
            playAudio(cordova.file.applicationDirectory + "www/music/audio1.mp3");
            }
    
            function playras() {
            playAudio(cordova.file.applicationDirectory + "www/music/audio2.mp3");
            }
    
            function playbecca() {
            playAudio(cordova.file.applicationDirectory + "www/music/audio3.mp3");
            }
    
    
    
    
            // Audio player
            //
            var my_media = null;
            var mediaTimer = null;
    
            // Play audio
            //
            function playAudio(src) {
                // Create Media object from src
                my_media = new Media(src, onSuccess, onError);
    
                // Play audio
                my_media.play();
    
                // Update my_media position every second
                if (mediaTimer == null) {
                    mediaTimer = setInterval(function() {
                        // get my_media position
                        my_media.getCurrentPosition(
                            // success callback
                            function(position) {
                                if (position > -1) {
                                    setAudioPosition((position) + " sec");
                                }
                            },
                            // error callback
                            function(e) {
                                console.log("Error getting pos=" + e);
                                setAudioPosition("Error: " + e);
                            }
                        );
                    }, 1000);
                }
            }
    
            // Pause audio
            // 
            function pauseAudio() {
                if (my_media) {
                    this.my_media.pause();
                }
            }
    
            // Stop audio
            // 
            function stopAudio() {
                if (my_media) {
                    this.my_media.stop();
                }
                clearInterval(mediaTimer);
                mediaTimer = null;
            }
    
            // onSuccess Callback
            //
            function onSuccess() {
                console.log("playAudio():Audio Success");
            }
    
            // onError Callback 
            //
            function onError(error) {
                alert('code: '    + error.code    + '\n' + 
                      'message: ' + error.message + '\n');
            }
    
            // Set audio position
            // 
            function setAudioPosition(position) {
                document.getElementById('audio_position').innerHTML = position;
            }
    
     HTML
    

    播放音乐|暂停音乐|停止音乐
    播放音乐|暂停音乐|停止音乐
    播放音乐|暂停音乐|停止音乐

    1 回复  |  直到 8 年前
        1
  •  1
  •   Draco18s no longer trusts SE    9 年前

    打电话给 stopAudio() 在顶部 playAudio(src) 功能?

    像这样:

    function playAudio(src) {
        stopAudio();
        //rest of your function
    }