RESTfulベースのWebサービス経由でオーディオをストリーミングしようとしています。私のオーディオファイルには、2つの異なるAAC 228 Kbpsステレオトラックが含まれています。 1つは英語で、もう1つはスペイン語です。複数のストリームを使用したWebオーディオ
私のGETリクエストは、オーディオファイルに問題はありません。ただし、ファイルの最初のソース(この場合はスペイン語)がデフォルトになります。
最終的には、ブラウザを使用して必要に応じてオーディオソースを切り替えることができるようにしたいと思います。私はすでに、ほとんどのブラウザが現在HTML5を通じて利用可能なaudioTracks APIをサポートしていないことを認識しており、私はエンドユーザをIEまたはEdgeに制限したくないと思っています。
これは、ウェブオーディオAPIを使用して手動でストリームを試して操作することになります。
私の現在のHTMLをテストするための単なる再生ボタンです。これは、最初のオーディオストリーミングのために働く
var context;
window.addEventListener('load', init, false);
function init() {
try {
// Fix up for prefixing
window.AudioContext = window.AudioContext||window.webkitAudioContext;
context = new AudioContext();
}
catch(e) {
alert('Web Audio API is not supported in this browser');
}
}
var onError = function() {
$log.info("ERROR");
}
$scope.audioActions = function() {
var request = new XMLHttpRequest();
request.open('GET', 'http://localhost...', true);
request.responseType = 'arraybuffer';
// Decode asynchronously
request.onload = function() {
context.decodeAudioData(request.response, function(buffer) {
$log.info(buffer)
var source = context.createBufferSource();
source.buffer = buffer;
source.connect(context.destination);
source.start(0);
}, onError);
}
request.send();
};
を、私は<audio>
タグを使用した場合と同じように動作します:次のように
<md-button class="md-raised" ng-click="audioActions()">Audio options</md-button>
私の現在の.jsです。
バッファ内のオーディオストリームを切り替える方法はありますか?
以下は私のファイルに-i ffmpegのからダンプされています:
[mov,mp4,m4a,3gp,3g2,mj2 @ 0000000000ea6920] stream 0, timescale not set
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'E:\ServerFiles\tmp\audioExample.m4a':
Metadata:
major_brand : M4A
minor_version : 0
compatible_brands: M4A mp42isom
creation_time : 1982-08-11T07:52:37.000000Z
title : Test
artist : Audio Example
album_artist : Audio Example
album : Example
genre : Test
track : 1/20
disc : 1/1
compilation : 0
gapless_playback: 0
date : 2017-08-16T08:00:00Z
account_id :
rating : 0
account_type : 0
season_number : 0
episode_sort : 0
media_type : 1
purchase_date : 2017-08-16 15:59:27
sort_album : Audio Example
composer : Example
Duration: 00:02:59.00, start: 0.000000, bitrate: 160 kb/s
Stream #0:0: Audio: aac (HE-AAC), 48000 Hz, stereo, fltp (default)
Stream #0:1: Audio: aac (HE-AAC), 48000 Hz, stereo, fltp
私の問題は、私は、これらの個別のチャンクを取得する方法がわからないです。私のサービスは、多くのオーディオファイルのうちの1つを返します。これらのオーディオファイルには、2つのストリームが埋め込まれています。リンクをたどることで、ファイル全体をバッファリングする方法を理解できました。しかし、このドキュメンテーションのどこにも、1つのファイルに2つのオーディオストリームを指定する例はありません。私は何かが欠けていない限り。 – cain4355
@ cain4355これらのファイルのコンテナ形式は何ですか? 'ffmpeg -i yourfile'の出力を提供できますか? – Brad
私のオリジナルの投稿に自分のffmpegの結果を追加しました – cain4355