所以我试图让我的网络应用程序播放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}}" >
当我注释掉音频部分时,图像能够正确显示。另外,如果我用对实际的base64编码字符串替换对article.MOI的调用,我可以播放音频。我看过并尝试使用
$scope.recordings = $sce.trustAsResourceUrl(myData);
在我的angularjs代码中,但我仍然得到相同的错误。
答案 0 :(得分:0)
尝试在控制器中创建如下变量:
$scope.test = "data:audio/mp3;base64," + $scope.article.MOI
并将此变量绑定到DOM。
答案 1 :(得分:0)
使用Firebase播放音频时遇到了同样的问题。这对我有用。
在我的控制器里,我有:
$scope.testAudio = $sce.trustAsResourceUrl("data:audio/mp3;base64," + $scope.article.MOI)
在我的HTML中:
<audio controls class="playback" ng-src="{{testAudio}}"></audio>