HTML Playing Base 64编码音频,带angularJS,错误:[$interpole:nooncat]

HTML Playing Base 64 encoded audio with angularJS with Error: [$interpolate:noconcat]

本文关键字:interpole nooncat 错误 Base Playing 编码 HTML 音频 angularJS      更新时间:2023-09-26

所以我正在尝试让我的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}}" >

当我注释掉音频部分时,图像能够正确显示。此外,如果我替换对文章的调用。MOI与实际的base64编码字符串我可以得到音频播放。我已经看过并尝试过使用

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

在我的angularjs代码中,但我仍然得到相同的错误。

尝试在控制器中创建如下变量:

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

并将该变量绑定到DOM。

我在使用Firebase播放音频时遇到了同样的问题。这对我有效。

在我的控制器中,我有:

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

在我的HTML:中

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