[
https://issues.apache.org/jira/browse/CB-14120?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16504351#comment-16504351
]
Ken Naito commented on CB-14120:
--------------------------------
Could you please tell me how to reproduce this issue in detail?
I try to test using following project.
(Cordova 8.0, Cordova-iOS 4.5.4)
However I can't reproduce this issue on both iOS 11.3.1/iPhone5S and iOS
11.3.0/iPhone8.
JavaScript:
{code:javascript}
var musics = ["A.mp3","B.mp3","C.mp3"];
var musicIndex = 0;
var media = null;
var mediaTimer = null;
function startPlayAudio() {
musicIndex = 0;
media = null;
mediaTimer = null;
playAudio1();
var elem = document.getElementById("musicPosition");
var showMusicPosition = function() {
if (media != null) {
var dur = media.getDuration();
media.getCurrentPosition( function(position) {
elem.innerHTML = musics[musicIndex] + " " + position + "/" + dur + "
[sec]";
});
}
mediaTimer = setTimeout(showMusicPosition, 250);
}
mediaTimer = setTimeout(showMusicPosition, 1);
}
function playAudio1() {
var url = "res/"+musics[musicIndex];
media = new Media(url,
function() {
},
function(err) {
},
function(status) {
if (status === Media.MEDIA_STOPPED) {
media.release();
musicIndex += 1;
if (musicIndex < musics.length) {
playAudio1();
} else {
mediaTimer.clearTimeout();
}
}
}
);
media.stop();
media.play();
}
{code}
HTML:
{code:HTML}
<div><button onclick="startPlayAudio()">StartPlayAudio</button></div>
<br>
<div id="musicPosition"></div>
{code}
> Playback issues in iOS 11.3/11.4
> ---------------------------------
>
> Key: CB-14120
> URL: https://issues.apache.org/jira/browse/CB-14120
> Project: Apache Cordova
> Issue Type: Bug
> Components: cordova-plugin-media
> Environment: Ionic 3, Angular JS 4
> Reporter: Muddasir Lakhani
> Priority: Blocker
>
> I am trying to play multiple audio tracks one after the other using the Media
> Plugin.
> On pressing play, I download all the tracks as a zip file, and then play them
> one after the other until the last track is played. This works fine on
> Android (all models) and also on iOS up to 11.2. On iOS 11.3 onwards, the
> next track never starts from the beginning, but from a random duration. So
> basically if an Album has 4 tracks, first one will play from duration 00:00,
> and then the next ones will start to play from random duration, and never
> from 00:00.
> Code Snippet is below:
> {{if (ContainerClass.GetPlatformName() == "android") { this._mFile =
> this.media.create(this._URL + "/" + AlbumNo + "/" + this._fileName[index]); }
> else if (ContainerClass.GetPlatformName() == "ios") { this._mFile =
> this.media.create((this._URL + "/" + AlbumNo + "/" +
> this._fileName[index]).replace(/^file:\/\//, '')); }
> this._mFile.onStatusUpdate.subscribe(status => console.log(status));
> this._mFile.stop(); this._mFile.play(); ServicesClass._mFile = this._mFile;
> ServicesClass._isPlaying = 1; ServicesClass._playingAlbumNo = this.AlbumNo;
> ServicesClass._isPlaying = 1 this._isPlaying = 1;
> this._mFile.onSuccess.subscribe(result => { index++; this._playingIndex =
> index; this._mFile.release(); if (ServicesClass._stopPlaying == false) {
> this.PlayFiles(AlbumNo, index); this.showMp3Player(true); } else { return; }
> }); this._mFile.onError.subscribe(error => console.log('Error!',
> JSON.stringify(error))); } }}
>
--
This message was sent by Atlassian JIRA
(v7.6.3#76005)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]