2

Media再生するファイルがいくつかあります。しかし、それらは 1 つずつ再生する必要があります。お気に入り:

var play_media;
play_media= new Media("../record/01.mp3",Success,Error);
play_media.play();
//And as the `../record/01.mp3` media file is done. 
//I will release it and create another one to play. 
play_media= new Media("../record/02.mp3",Success,Error);

しかし、1 つのメディアの再生が完了すると、何も返されないようです。
どのようにできるのか ?

4

3 に答える 3

1

次のようなことを試してください:

var media = {"../record/01.mp3","../record/02.mp3","../record/03.mp3"};
var next = 0, play_media;
for(int i=0; i<media.lenght; i++){
    play_media= new Media(media[next]);
    play_media.play();
    if(soundTimer == null){
        soundTimer = setInterval(function(){
            vpSound.getCurrentPosition(
                function(position){
                    if(position > -1){
                        //Do something if you want 
                    }
                }
            );
        }, 1000);
        next = next + 1;
    }
}
于 2013-01-14T13:06:27.390 に答える
0

Media.getCurrentPosition() を javascript setInterval と共に使用し、毎秒間隔 (1000) に設定して、再生中のトラックの位置を取得します。次に、トラックの位置が -0.001 に等しいかどうかを確認します。これは、終わった。そこから次のトラックに移動するか、最後のトラックの場合は Media.release() を使用します

           var mediaTimer = setInterval(function () {
               media.getCurrentPosition(function (position) {
                     if (position > -0.001) {
                        //Do something like update a progress bar and set times.
                     }
                     else if (position === -0.001) {
                           selectedIndex = selectedIndex + 1; //selectedIndex is the index of the song chosen in a list.
                          if (selectedIndex > playlistLength) {
                              media.release();
                          } 
                          else {
                            var nextTrack = app.FolderList.tracks[selectedIndex]; //get the next track from a list of tracks using the selectedIndex
                            playPause(nextTrack.SongPath);//playPause() is used to initialize a new Media object with the new track and then plays it.
                          }
                     },
                     function () {
                     console.log('Unable to retrieve media position: ' + error.code);
                       });
                    },
                    1000);
于 2014-08-22T13:20:39.123 に答える
0

最初に media.getDuration: でオーディオ クリップの長さを見つけ、setTimeout 関数を使用して次の曲を再生します。このようにして、複数の曲を連続して再生できます

于 2013-01-13T06:40:03.890 に答える