私は、に取り組んでいるインターネットラジオストリームアプリケーションとionic-native-media
し、ionic-native-music-controls
プラグイン。
問題は、stop
ボタンを押すとオーディオの再生が停止するのに、Chrome開発者ツール内のネットワークタブでストリームがまだ読み込まれている場合です。ストリーミングを完全に停止する解決策はありますか?
コード:
export class RadioPage {
file: MediaObject;
constructor(
public musicControls: MusicControls,
public media: Media,
public navCtrl: NavController
) { }
settingMusicControl() {
this.musicControls.destroy();
this.musicControls.create({
track: 'Radio',
artist: 'Live Stream',
cover: '',
isPlaying: true,
dismissable: true,
hasPrev: false,
hasNext: false,
hasClose: true,
hasSkipForward: false,
hasSkipBackward: false,
skipForwardInterval: 15,
skipBackwardInterval: 15,
album: 'Test Album',
duration: 0,
elapsed: 0,
ticker: 'Ticker'
});
this.musicControls.subscribe().subscribe(action => {
const message = JSON.parse(action).message;
console.log('message', message);
switch (message) {
case 'music-controls-next':
break;
case 'music-controls-previous':
break;
case 'music-controls-pause':
this.file.stop();
this.musicControls.listen();
this.musicControls.updateIsPlaying(false);
break;
case 'music-controls-play':
this.file.play();
this.musicControls.listen();
this.musicControls.updateIsPlaying(true);
break;
case 'music-controls-destroy':
break;
case 'music-controls-toggle-play-pause':
break;
case 'music-controls-seek-to':
break;
case 'music-controls-skip-forward':
break;
case 'music-controls-skip-backward':
break;
case 'music-controls-media-button':
break;
case 'music-controls-headset-unplugged':
break;
case 'music-controls-headset-plugged':
break;
default:
break;
}
});
this.musicControls.listen();
this.musicControls.updateIsPlaying(true);
}
play() {
this.file = this.media.create('http://streaming.tdiradio.com:8000/house.mp3');
this.file.play();
this.settingMusicControl();
}
stop() {
this.file.stop();
this.musicControls.listen();
this.musicControls.updateIsPlaying(false);
}
}
Chromeデベロッパーツール:
解決策1:解決策1:
Ionic Native Media
プラグイン:
this.file.stop();
別の関数を呼び出すために後が必要ですthis.file.release();
解決策2:
現時点での最善の解決策
使用HTML5 Audio Object
:
var url = 'http://streaming.tdiradio.com:8000/house.mp3';
var stream = new Audio(url);
stream.preload = 'none';
function play() {
stream.play();
}
function pause() {
stream.pause();
stream.src = ''
stream.load();
stream = null;
stream = new Audio();
stream.src = url;
stream.preload = 'none';
}
<button onclick='play()'>Play</button>
<button onclick='pause()'>Pause</button>
役立つリンク:
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加