2016-04-16 20 views
0

私はWebアプリケーションでBase64エンコードされたオーディオを再生しようとしています。これは私が使用していますコードです:

<audio controls="controls" autobuffer="autobuffer" autoplay="autoplay"> 
     <source ng-src="data:audio/mp3;base64,{{article.MOI}}"> 
</audio> 

問題は、私はこのエラーを取得しています:

angular.js:11655 Error: [$interpolate:noconcat] http://errors.angularjs.org/1.3.15/$interpolate/noconcat?p0=data%3Aaudio%2Fmp3%3Bbase64%2C%7B%7Barticle.MOI%7D%7D 

奇妙なことは、私はまた、次のコード行で画像をbase64エンコードを表示していますされています

<img ng-src="data:image/JPEG;base64,{{article.Image_Front}}" > 

オーディオ部分をコメントアウトすると、画像が正しく表示されます。また、article.MOIへの呼び出しを実際のbase64でエンコードされた文字列に置き換えると、再生するオーディオを取得できます。私は見て、使用しようとしました

$scope.recordings = $sce.trustAsResourceUrl(myData); 

私のangularjsコードで、私はまだ同じエラーが発生します。

+0

ので、私はハード 'NG-SRC =「データ使用して動作するようにオーディオをコーディングすることができます:オーディオ/ mp3を、BASE64 、(エンコードされたbase64文字列) "'それは私がjsに割り当てた$ scope変数を挿入しようとするときだけです –

答えて

0

は、コントローラに以下のような変数を作成してください:

$scope.test = "data:audio/mp3;base64," + $scope.article.MOI 

とDOMに、この変数を結合します。

0

Firebaseを使用してオーディオを再生するのと同じ問題が発生しました。これは私のために働いた。私のコントローラで

私が持っていた:私のHTMLで

$scope.testAudio = $sce.trustAsResourceUrl("data:audio/mp3;base64," + $scope.article.MOI) 

を:

<audio controls class="playback" ng-src="{{testAudio}}"></audio>