javascript - AngularJS + HTML5 录制音频文件

标签 javascript html angularjs amazon-s3 audio-recording

我正在寻找一种简单的解决方案来录制音频文件并将其上传到 s3。

我的网络搜索找到了:

WebRTC-Experiment这是我能找到的最受欢迎的解决方案。

它在以下链接中也有一个工作示例:https://www.webrtc-experiment.com/RecordRTC/

我还找到了ngCamRecorder Firefox 尚不支持。

我正在寻找一个简单的解决方案 + 工作示例和建议。

  1. 哪种解决方案最适合与 AngularJS 一起使用?

  2. 如果您可以提供您自己的示例或指向我可以使用的工作示例的链接。

  3. 如果您也使用 S3,我想知道如何将文件推送到 S3,并获取 Controller 的链接。

我找到的解决方案抛出错误,并包含一个没有代码本身解释的工作示例。 我也想知道如何将它推送到 s3。

这是我从示例中实现的代码:

$scope.start_recording = function()
{
    navigator.getUserMedia(session, function (mediaStream) {
        window.recordRTC = RecordRTC(MediaStream);
        recordRTC.startRecording();
    }, function(error){console.log(error)});
};

$scope.stop_recording = function()
{
    navigator.getUserMedia({audio: true}, function(mediaStream) {
        window.recordRTC = RecordRTC(MediaStream);
        recordRTC.startRecording();
    });
};

它只是抛出一个错误:undefined is not a function on recordrtc.js line 641

  if(!mediaStream.getAudioTracks().length) throw 'Your stream has no audio tracks.';

显然 mediaStrem 为空。

谢谢。

最佳答案

有一个 AngularJS 包装器,它是一个支持 HTML5 (RecorderJS)、Cordova Media 和 Flash 的简单指令。

用法很简单

<ng-audio-recorder audio-model="someModel" auto-start="false">
   <!-- controls -->
   <button ng-click='recorder.startRecording()'>Start</button>
   <button ng-click='recorder.stopRecording()'>Stop</button>
</ng-audio-recorder>

你可以在这里看到完整的用法:

https://github.com/logbon72/angular-recorder

关于javascript - AngularJS + HTML5 录制音频文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25746379/

相关文章:

javascript - Chrome/Safari (webkit) 中的 Facebook Javascript SDK 登录问题 - 不安全的 Javascript 尝试

angularjs - "this"在使用 TypeScript 构建的 Angular 指令中的侧链接函数中未定义

javascript - 如何让 while 循环将其结果存储在数组中,并重复 10 次?

html - 在 Bootstrap 网站上找不到 .img-responsive

javascript - 确认密码自定义指令在 Angular 中不起作用

html - <p> 标签中单词之间的文本间距不一样

html - Bootstrap Nav Bar 无法在 ie 上工作

javascript - Vanilla JS 想在每次点击时创建一个新的进度条?

javascript - JQuery 当我单击时出现错误 Uncaught RangeError : Maximum call stack size exceeded

javascript - 一次性绑定(bind)以及指令的双向绑定(bind)和 ng-repeat