离子如何创建一个mp3文件

Ionic how can I create an mp3 file?

本文关键字:一个 文件 mp3 创建 何创建      更新时间:2023-09-26

我正在使用Ionic框架编写一个Web应用程序,并且正在尝试管理记录和播放声音机制。我使用以下代码片段作为服务:

.factory('MediaSrv', function ($q, $ionicPlatform, $window) {
    var service = {
        loadMedia: loadMedia,
        getStatusMessage: getStatusMessage,
        getErrorMessage: getErrorMessage
    };
    function loadMedia (src, onError, onStatus, onStop) {
        var defer = $q.defer();
        $ionicPlatform.ready(function () {
            var mediaSuccess = function () {
                if (onStop) { onStop(); }
            };
            var mediaError = function (err) {
                _logError(src, err);
                if (onError) { onError(err); }
            };
            var mediaStatus = function (status) {
                if (onStatus) { onStatus(status); }
            };
            if ($ionicPlatform.is('android')) {
                src = '/android_asset/www/' + src;
            }
            defer.resolve(new $window.Media(src, mediaSuccess, mediaError, mediaStatus));
        });
        return defer.promise;
    }
    ...
    return service;
});

我可以播放现有的.mp3文件,但无法在不存在的文件上录制。我认为如果找不到文件,它会自行创建文件。如何创建用于录制的空.mp3文件?

创建文件是一项服务器功能。您需要一个使用 fs 的节点服务器来创建文件。

来自Ionic的网站:

将 Ionic 视为前端 UI 框架,它处理应用所需的所有外观和 UI 交互,以便引人注目。有点像"Bootstrap for Native",但支持广泛的常见原生移动组件,流畅的动画和漂亮的设计。

Ionic 可以使用 Cordova 插件,因为它建立在它之上。

您可以使用媒体捕获插件来捕获音频,但是我发现这些记录为 AMR 文件。

来自[文档][1]:

// capture callback
var captureSuccess = function(mediaFiles) {
    var i, path, len;
    for (i = 0, len = mediaFiles.length; i < len; i += 1) {
        path = mediaFiles[i].fullPath;
        // do something interesting with the file
    }
};
// capture error callback
var captureError = function(error) {
    navigator.notification.alert('Error code: ' + error.code, null, 'Capture Error');
};
// start audio capture
navigator.device.capture.captureAudio(captureSuccess, captureError, {limit:2});

  [1]: http://docs.phonegap.com/en/edge/cordova_media_capture_capture.md.html