`

android ->cordova record 录音

 
阅读更多

 

<!DOCTYPE html>
<html lang="en">
<head>
	<meta content="width=device-width,initial-scale=1.0,maximum-scale=1.0,user-scalable=no" id="viewport" name="viewport">
	<meta charset="utf-8">
	<title></title>
	<script type="text/javascript" src="./js/jquery-1.11.1.js"></script>
	<script type="text/javascript" src="./js/jQuery.md5.js"></script>
	<script language="javascript" src="./js/cordova.js" > </script>
</head>
<body>
	<div class="app">
		<h1>Apache Cordova</h1>
		<div id="deviceready" class="blink">
			<p id="test">操作提示</p><!--这里会显示录音操作中的各个变化-->
			<input type="button" value="录音" id="luyin" />
			<input type="button" value="录音完成" id="luyin_finish" />
			<input type="button" value="录音播放" id="luyin_bofang" />
			<input type="button" value="录音上传 " id="luyin_upload" />
			
		</div>
	</div>
	<script type="text/javascript">

	var mediaRec;
	var recTimeMax = 10;
	var recTime = 0;

	var recordFile = "myrecording.amr";
 
	//开始录音
    function recordAudio() {
        var src = recordFile;
        mediaRec = new Media(src, onSuccess, onError);

        // Record audio
        mediaRec.startRecord();
         // Stop recording after 10 sec
        recTime = 0;
        var recInterval = setInterval(function() {
            recTime = recTime + 1; 
            if (recTime >= recTimeMax) {
                clearInterval(recInterval);
                mediaRec.stopRecord();
				mediaRec.release();
            }
        }, 1000);
 
 
    }
    // onSuccess Callback
    //
    function onSuccess() {
        console.log("recordAudio():Audio Success");
    }

    // onError Callback
    //
    function onError(error) {
        alert('code: '    + error.code    + '\n' +
              'message: ' + error.message + '\n');
    }
	//==========

	//录音完成
    function recordFinish() {
        recTime = recTimeMax;
 
    }

	//播放audio
	function playAudio(url) {
		// Play the audio file at url
		var my_media = new Media(url,
			// success callback
			function() {
				console.log("playAudio():Audio Success");
			},
			// error callback
			function(err) {
				console.log("playAudio():Audio Error: "+err);
		});

		// Play audio
		my_media.play();
	}
	//\\

	//上传 
	function uloadRecord(){
		var win = function (r) {
			console.log("Code = " + r.responseCode);
			console.log("Response = " + r.response);
			console.log("Sent = " + r.bytesSent);
		}

		var fail = function (error) {
			alert("An error has occurred: Code = " + error.code);
			console.log("upload error source " + error.source);
			console.log("upload error target " + error.target);
		}

		var options = new FileUploadOptions();
		options.fileKey = "file";
		options.fileName = recordFile;
		options.mimeType = "audio/wav";

		var ft = new FileTransfer();
		ft.upload('/sdcard/'+recordFile, encodeURI("http://192.168.1.101/upload_record/index.php"), win, fail, options);
	}



	//为按钮绑定  touchstart(点击) 事件
	$("#luyin").click(function(){
		//实例化录音类
		recordAudio();
		//开始录音
		$("#test").html("开始录音");
	});
	
	//录音 完成
	$('#luyin_finish').click(function(){
		recordFinish();
	});
	
	//录音 播放
	$('#luyin_bofang').click(function(){
		playAudio(recordFile);
	});
	
	//录音 上传
	$('#luyin_upload').click(function(){
		uloadRecord()
	});

	
	
</script>

	</body>
</html>

 

upload.php

 

<?php
// Where the file is going to be placed
$target_path = "records/";

/* Add the original filename to our target path.
Result is "uploads/filename.extension" */
$target_path = $target_path . basename( $_FILES['file']['name']);

if(move_uploaded_file($_FILES['file']['tmp_name'], $target_path)) {
    echo "The file ".  basename( $_FILES['file']['name']).
    " has been uploaded";
} else{
    echo "There was an error uploading the file, please try again!";
    echo "filename: " .  basename( $_FILES['file']['name']);
    echo "target_path: " .$target_path;
}
?>

 

manifest 的权限

 

<uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS" />

<uses-permission android:name="android.permission.RECORD_AUDIO" />
<uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />

 

 

附件 是 2.91 版本的 js 和 jar 

 

*** 解决 android 录音 在 ios 不能播放的问题,

android 录音格式 改为 mp3 

修改 cordova media 插件源码 

android/java/org.apache.cordova/media/AudioPlayer

修改 startRecording 方法

this.recorder.setAudioSource(MediaRecorder.AudioSource.MIC);
this.recorder.setOutputFormat(MediaRecorder.OutputFormat.MPEG_4);
this.recorder.setAudioEncoder(MediaRecorder.AudioEncoder.AAC);

 

 这样就可以了,  亚达\(^o^)/~

分享到:
评论

相关推荐

    Android代码-cordova-plugin-app-update

    cordova-plugin-app-update App updater for Cordova/PhoneGap Demo Try it yourself: Just clone and install this demo. cordova-plugin-app-update-DEMO :tada: 如果喜欢它,请别忘了给我一颗鼓励的星 Support ...

    Android-Cordova插件-用于播放海康监控视频

    - 添加Android平台到项目中:`cd &lt;project_name&gt;`,然后运行`cordova platform add android`。 2. **创建插件** - 在项目的`plugins`目录下创建新的目录,例如`hikvision-video-player`。 - 初始化插件:在新...

    cordova-screenshot cordova截屏插件

    cordova-screenshot cordova截屏插件 document.addEventListener("deviceready", init, false); function init() { document.querySelector("#share").addEventListener("touchend", function() { navigator....

    Android代码-cordova调用安卓原生activity插件

    cordova-plugins-activity cordova调用安卓原生activity插件 使用简介 JS端使用方式 //sendData表示要从js端发送到原生activity的数据,需用json对象传输 var sendData = { id:10001, name:"Simon", age:28 }; ...

    Cordova-plugin-finger-print

    Cordova-plugin-finger-print是一款专为Cordova框架设计的插件,主要用于在Android平台上实现指纹识别功能。Cordova是一个流行的开源框架,它允许开发者使用HTML、CSS和JavaScript来构建原生移动应用程序。通过将...

    Android代码-cordova-plugin-background-mode

    Cordova Background Plugin Plugin for the Cordova framework to perform infinite background execution. Most mobile operating systems are multitasking capable, but most apps dont need to run while in ...

    Android-cordova-plugin-background-mode.zip

    Android-cordova-plugin-background-mode.zip,使应用程序在后台运行,安卓系统是谷歌在2008年设计和制造的。操作系统主要写在爪哇,C和C 的核心组件。它是在linux内核之上构建的,具有安全性优势。

    BudgetApp:混合预算应用程序 ->cordova、angularjs

    它利用了Cordova框架的特性,将Web应用程序的功能与原生移动设备的能力相结合,使得用户可以在Android 4.1及更高版本的设备上享受流畅的预算管理体验。这个应用的核心技术栈是AngularJS,一个由Google维护的...

    Android代码-cordova-plugin-streaming-media

    cordova plugin add https://github.com/nchutchind/cordova-plugin-streaming-media iOS specifics Uses the AVPlayerViewController Tested on iOS 12 or later Android specifics Uses VideoView and ...

    android 第三方webview cordova的集成使用

    例如,要使用相机功能,可以添加相机插件`cordova plugin add cordova-plugin-camera`,然后在JavaScript中调用`navigator.camera.getPicture()`。 8. **运行与调试**:使用`cordova run android`命令在模拟器或...

    cordova-android-3.6.4.tgz

    在这个场景中,`cordova-android-3.6.4.tgz` 是一个针对 Android 平台的 Cordova 版本的归档文件,采用的是 TAR+GZIP 的压缩格式。 TAR 是一种文件打包工具,它能够将多个文件或目录打包成一个单一的文件,便于管理...

    cordova-res:本地Cordova Iconsplash屏幕资源生成工具

    cordova-res是为与Cordova一起使用而开发的,但是支持Capacitor和其他本机运行时。 安装 $ npm install -g cordova-res 用法 cordova-res期望Cordova项目的结构如下: resources/ ├── icon.png └── splash....

    vue-cli-plugin-cordova:Vue Cli 3 Cordova插件

    vue-cli-plugin-cordova ...$ npm run cordova-prepare # prepare for build (you can run this command, when you checkouted your project from GIT, it's like npm install) 安卓 $ npm run cor

    cordova-plugin-android-support-v4-jar-master.zip

    【标题】"cordova-plugin-android-support-v4-jar-master.zip"是一个专门为Cordova应用提供安卓v4支持库的插件压缩包。Cordova是一款流行的开源框架,它允许开发者使用Web技术(如HTML、CSS和JavaScript)来构建原生...

    cordova-android-3.3.0 js+jar

    1,cordova-android-3.3.0 源码 2,cordova-android-3.3.0 plugins源码 3,cordova-android-3.3.jar https://git-wip-us.apache.org/repos/asf?s=cordova config.xml请移步看文章:...

    vue-cordova:Cordova的Vue.js插件

    于插件 注意:兼容每个版本的VueJS(1.x和2.x)... cordova-plugin-camera cordova-plugin-device cordova-plugin-geolocation cordova-plugin-contacts cordova-plugin-chrome-apps-sockets-tcp cordova-plugin-sms 如

    cordova-android-3.5.0

    2. **平台支持**:Cordova-android-3.5.0支持Android平台,意味着开发者可以用一套代码来构建运行在不同Android设备上的应用。不过,这个版本可能不兼容较新的Android API级别,因此在现代设备上可能会遇到兼容性...

    ionic3-使用cordova创建自定义插件

    cordova platform add android ``` 创建自定义插件的过程通常包括以下步骤: 1. 初始化插件目录结构:使用 `cordova plugin create` 命令创建插件项目。 ```bash cordova plugin create my-plugin --id ...

    Android-Cordova-Plugin-Http基于iOSAndroid平台的插件可实现getpost请求。

    `Cordova-Plugin-Http`是一个专门为Cordova应用设计的网络请求插件,支持在iOS和Android平台上进行HTTP的GET和POST操作。这个插件提供了简单且强大的API,让开发者可以方便地发起网络请求,获取数据或提交表单数据。...

    gulp-cordova-android-versionCode

    gulp-cordova-android-versionCode 在cordova项目的config.xml中设置android versionCode。 安装 npm install --save-dev gulp-cordova-android-versionCode 用法 var gulp = require ( 'gulp' ) , create = ...

Global site tag (gtag.js) - Google Analytics