ionic Cordova 使用媒体插件在 IOS 上录制音频失败

2024-02-26

我正在开发一个离子应用程序,我需要录制音频文件,所以我使用了cordova-plugin-media,它在android上运行良好,但是当我在ios上尝试它时,我收到此错误:

{"message":"无法使用 AVAudioRecorder 开始录音","code":1}

这是我的代码:

var extension = '.wav';
var name = 'filename';
var audio = null;
var filepath;

$scope.startRecording = function() {
  name = Utils.generateFilename();
  if(device.platform == "iOS")
  {
     //var path = "documents://";
     //var path = cordova.file.documentsDirectory;
     //var path = cordova.file.cacheDirectory;
     var path = cordova.file.dataDirectory;
     path = path.replace("file:///", "cdvfile://");

  }
  else if(device.platform == "Android")
  {
    var path = cordova.file.externalApplicationStorageDirectory;
  }
  var filename = name + extension;
  filepath = path + filename;
  audio = new Media(filepath, function(e){console.log(e, "success Media");},function(e){console.log(e, "error");});
    audio.startRecord();

  };

  $scope.sendAudioMsg = function() {
     audio.stopRecord();
     audio.release();
  };

当我控制台记录路径时我得到这个:

cdvfile://var/mobile/Containers/Data/Application/F47A76AD-E776-469F-8EFA-85B0A0F14754/Library/NoCloud/dJzSapEU6k16hV7EGrD06L29NjZcOCVzHCUTrcjEDiTCF7uUNGmCHchEcwfGls3V88p85ij0NUkv0KV年龄vbgh3lwWsEfmaO8uNq.wav

谁能帮我??


尝试以下 Android 版。

var path = "Android/data/"+YOUR_APP_ID+"/files/"+FILENAME+".wav";

var myMedia = new Media(path, success, error);
myMedia.startRecord();

完成录制后访问文件

var path = cordova.file.externalApplicationStorageDirectory+"files/"+FILENAME+".wav";
var myMedia1 = new Media(path, success, error);
myMedia1.play();

YOUR_APP_ID 将是 com.test.app

iOS,请参阅下文

var fileName = "myrec.wav";
var myMedia = new Media(path, success, error);
myMedia.startRecord();

访问文件

window.requestFileSystem(LocalFileSystem.TEMPORARY, 0, function (fileSystem){
            fileSystem.root.getFile(fileName, null, function (fileEntry){
                fileEntry.file(function OnFileEntry(file){
                    // file is actual recorded file, get the path and play or get base64 string
                    var reader = new FileReader();
                    reader.onloadend = function(evt) {
                        evt.target.result; // this is base64 string
                    };
                    reader.readAsDataURL(file);
                }, error);
            }, error);
        }, error);
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

ionic Cordova 使用媒体插件在 IOS 上录制音频失败 的相关文章

  • NSFetchedResultsController 中的部分名称与托管对象值不匹配

    我正在使用 NSFetchedResultsController 用大约 1500 个实体的中等大小的核心数据存储的结果填充 UITableView 结果控制器相当标准 一些潜在错误的 热点 并不适合此设置 在与其使用的同一 主 线程上创建
  • iOS 中的视频可以进行反卷积吗?

    我想拍摄击球手挥动棒球的镜头 但球棒很模糊 视频为 30 fps 通过研究 我发现反卷积似乎是最小化运动模糊的方法 但我不知道是否或如何在我的 iOS 应用程序后处理中实现它 我希望有人能给我指出正确的方向 比如如何在 iOS 中应用反卷积
  • Cordova 上的 ClearCookiesAsync()

    我正在尝试使用 wp8 cordova 中的插件来清除 WebBrowser cookie 我已经让它与 JavaScript 进行通信 并且我的 c 文件中有类似这样的内容 using WPCordovaClassLib Cordova
  • 如何获取 HKWorkoutActivityType 的字符串描述?

    我正在开发一项功能 可以从健康应用程序中读取 HKWorkout 样本 我想向用户显示一个描述字符串 告诉他们锻炼是什么 我能看到的唯一可能向用户指示样本代表的活动类型的属性是workoutActivityType财产 我应该如何将 HKW
  • iOS 中通过 USB 进行反向端口转发

    我在桌面上有一个 Web 套接字服务器 在 iPhone 设备上有一个客户端 我想使用 USB 而不是任何网络与他们通信 我已经使用 adb reverse 在 android 上实现了它 但无法找到适用于 iOS 的任何解决方案 我尝试使
  • 为什么分割视图控制器必须始终是您创建的任何界面的根?

    在苹果的开发者指南中 他们指出 分割视图控制器必须始终是您创建的任何界面的根 see here http developer apple com library ios featuredarticles ViewControllerPGfo
  • “未发现包含任何钥匙串签名证书的未过期配置文件”恐怖

    我看到了其他一些涉及这个主题的问题 但没有一个像我的 昨天我无意中将一个设备添加到设备列表中 问题 我的印象是 一旦添加设备 它现在就会链接到配置文件 然而 我相信它没有链接到我的分发配置文件之一 因此 我进入编辑配置文件 单击设备旁边的复
  • 为什么每次用户启动应用程序时都要注册推送通知?

    在Apple文档中你可以找到下面这句话 应用程序应在每次启动时进行注册 并向其提供者提供当前令牌 它调用 registerForRemoteNotificationTypes 来启动注册过程 因此 当我在应用程序中实现推送通知时 我必须注册
  • UITableViewCellDeleteConfirmationControl 问题

    我在项目中使用以下代码 if NSStringFromClass subview class isEqualToString UITableViewCellDeleteConfirmationControl 这在 iOS 5 和 6 上运行
  • swift:移动动画

    我在故事板中有 viewController 还有4个正方形 我想将我的方块放在视图中 首先我想显示两个正方形 如果我按下按钮 我希望我的红色 2 个方块向左移动 然后显示接下来的 2 个蓝色方块 就像这部动画 我需要创建一个scrollV
  • 手动屏幕跟踪在 Firebase (iOS) 中不起作用

    我正在尝试禁用 Firebase 中的手动屏幕跟踪 并将其替换为我自己的屏幕跟踪实现 通过自动屏幕跟踪 我发送到 firebase 的每个事件都有两个额外的参数 firebase screen class and firebase scre
  • 如何让我的“点击”功能与 iOS 配合使用

    我有一组充当按钮的 Div 这些按钮有一个简单的 jquery click 函数 该函数适用于除 iOS 之外的所有浏览器 例如 div class button click me div and button click function
  • iOS图片上的线测量

    我需要一些帮助来开始绘制末端带有圆圈的线条 并测量其长度 我能够划清界限 但无法让它移动 花了几个小时决定在 SO 上发布 因此 请参阅下图并指导我开始 任何使用 Objective C 的示例或教程都会有帮助 谢谢 这个想法看起来实现起来
  • 如何在 Swift 中将 Int 转换为字符

    我在这里挣扎了十多分钟 失败了 我屈服了 我需要在 Swift 中将 Int 转换为 Character 但无法解决它 Question 你如何转换 cast an Int integer to a Character char 在斯威夫特
  • 使用本地化故事板进行即时本地化

    我正在开发一个应用程序 它有一个切换按钮可以在英语和阿拉伯语之间切换 并且应该是动态的 我正在使用该方法https github com maximbilan ios language manager https github com ma
  • UITextField 中光标闪烁,但键盘不出现

    我得到了一个带有文本字段的简单详细视图 在详细的viewController中我写了这段代码 void viewDidAppear BOOL animated self textField becomeFirstResponder NSLo
  • 从 Xcode iOS 项目运行 swift 脚本作为构建阶段

    这是一个简单的快速脚本 usr bin env xcrun swift import Foundation let task NSTask task launchPath bin echo task arguments farg1 arg2
  • dequeueReusableCellWithIdentifier: 如何工作?

    我想要一些精确的信息dequeueReusableCellWithIdentifier kCellIdentifier 如果我理解得很好 下面的 NSLOG 应该只打印一次 但事实并非如此 那么 dequeueReusableCell 的意
  • Google Maps iOS SDK:地图上东西点之间的距离

    如何计算地图东点和西点之间的距离 以米为单位 假设用户更改了滚动地图的位置 然后我使用 mapView didChangeCameraPosition delegate 方法捕获移动 但我不知道如何计算距离 这是一个辅助函数 可用于计算两个
  • 如何知道我的 Xcode iPhone 项目是否使用 ARC?

    我想知道我的 Xcode iPhone 项目是否正在使用 ARC 但我不记得在创建项目时是否勾选了该框 我怎样才能得到这些信息 选择您的项目 然后构建设置 寻找Objective C 自动引用计数 in the Apple LLVM 编译器

随机推荐

  • 附加!在计划中?

    我目前正在学习 R5RS 方案 来自 PocketScheme 我发现我可以使用内置于方案的某些变体 但不是全部 中的函数 Append 换句话说 破坏性地改变列表 我对实际代码并不感兴趣 而是对答案感兴趣 而是对将列表作为函数 或向量或字
  • CSS3 文本阴影效果与 jQuery

    我希望能够创建与 CSS3 text shadow 属性相同的效果 使其可供不支持此 CSS3 属性的浏览器 例如 IE 7 和 8 使用 所以我找到了两个插件 文字阴影 https web archive org web 20141108
  • Qt:无法从输入设备读取:没有这样的设备

    我有一个在嵌入式 Linux 平台 i Mx 6 上运行的 Qt 应用程序 我的应用程序应支持触摸屏作为主要输入设备和可选的 USB 键盘 如果已连接 所以现在 我已配置要启动的应用程序 如下所示 my qt app plugin tsli
  • 可更新的 VIEW 不适用于 Postgres 9.5 中的 ON CONFLICT

    PostgreSQL 版本 9 5 4 我有一个表定义为 CREATE TABLE IF NOT EXISTS TEST 1 ID SERIAL PRIMARY KEY C1 BYTEA C2 TEXT NOT NULL C3 BOOLEA
  • 如何从多维数组中找到最大的数组[重复]

    这个问题在这里已经有答案了 可能的重复 获取多维数组中元素的最大值 https stackoverflow com questions 2189479 get the maximum value from an element in a m
  • 获取 Instagram 访问令牌

    我们有一个客户 他的网站上有一个简单的 Instagram 功能 可以按特定标签提取照片 他们只是注意到它不起作用 收到错误 访问令牌无效 我想从一号开始就因为更新了 我们过去不需要访问令牌 因为我们没有对用户做任何事情 只是标签 现在看来
  • Nuxt.js - 在页面中添加两个布局

    我是初学者Nuxt js我正在将 Vue 项目转换为 Nuxt js 并且我想在一个页面上使用两种布局 默认的一个和另一个 逻辑是这样的 第一个布局是 默认 或所有页面上的标题 第二个布局是设置栏 In settings我的页面有 3 条路
  • Vue3 + Vite + Typescript:作用域插槽类型错误

    我有一个包含以下 devstack Vue3 Vite TypeScript 的项目 并且出现以下错误v slot Element implicitly has an any type because expression of type
  • 河内塔序言

    您好 我在实施河内塔时遇到问题 我需要打印包含必要动作的列表列表 但我的算法仅在光盘数量为 N 1 时才起作用 这是我的代码 move 1 X Y L append X Y L move N X Y Z N gt 1 M is N 1 mo
  • javascript 源映射:将映射文件保留在本地,仅用于调试生产 javascript

    我想调试生产网站 但我不想将地图文件上传到服务器上 出于隐私原因 因为它是公开的 对吧 是否可以 我不相信目前任何浏览器都允许从本地文件按需加载源映射 因此您必须以某种方式将源映射放到网上 一种解决方案可能是创建一个 htaccess 文件
  • Angular:拦截 HTTP 错误并继续链

    我想将某些 HTTP 错误代码视为非错误 并正常处理它们的响应 所以我尝试添加一个HttpInterceptor捕获 500 个状态代码 并返回原始响应 Angular 将其放入error error intercept req HttpR
  • 即使类型不可能实现特征,它是否是报告“特征实现冲突”的编译器限制?

    当试图回答时这个问题 https stackoverflow com questions 55628334 trait function conditional default implementation 我写了这段代码 trait My
  • 如何实现XMPP发送推送通知

    我想使用 XMPP 以便我的应用程序能够向 Android 手机 1 5 及更高版本 发送更新 我非常想使用 XMPP 向手机发送推送通知 我将如何实现这一目标 目前 我的 Web 应用程序正在 apache tomact 上运行 带有许多
  • 如何为 Stripe 结帐会话生成已付款发票 PDF?

    目前 我的网络应用程序在通过 Stripe 结账购买后 会通过电子邮件向客户发送 Stripe 收据 然而 对于某些客户来说 这还不够 他们想要一张已付款的购买发票 上面有我的企业和他们的企业的信息 如何使用这些信息生成 PDF 我调查过
  • 不允许出现重复的“row.names”错误

    我正在尝试加载一个包含 14 列的 csv 文件 如下所示 StartDate var1 var2 var3 var14 当我发出这个命令时 systems lt read table http getfile pl test csv he
  • 在 pandas 中解析 POSIX 时间戳的惯用方法?

    我有一个 csv 文件 其中的时间列表示 POSIX 时间戳 以毫秒为单位 当我在 pandas 中读取它时 它正确地将其读取为 Int64 但我想将其转换为 DatetimeIndex 现在我首先将其转换为日期时间对象 然后将其转换为 D
  • 如何以编程方式获取 Android 上的所有热量信息(CPU [所有核心]、GPU、设备等)?

    我正在尝试以编程方式提取 Android 应用程序中的热信息 但没有足够的文档来执行此操作 我想要提取的东西是这样的 vbal low 37 9 C gold virt max step 28 2 C cpu3 银 lowf 27 8 C
  • 用默认值初始化成员的最优雅的方法

    有什么方法可以利用初始化列表来可选地初始化可选 构造函数中的参数 下面的例子诉诸于if x 类型 正文中的逻辑 因为尚不清楚如何设置 x仅在初始化列表中 如果传入的话 class Point double x 0 0 double get
  • 线程安全事件调用

    触发事件时避免竞争条件 在多线程应用程序中 的常见做法是 EventHandler
  • ionic Cordova 使用媒体插件在 IOS 上录制音频失败

    我正在开发一个离子应用程序 我需要录制音频文件 所以我使用了cordova plugin media 它在android上运行良好 但是当我在ios上尝试它时 我收到此错误 message 无法使用 AVAudioRecorder 开始录音