android和ios,音频互通方案
2015-06-21 22:57
567 查看
好久不更新博客上,从年前从公司辞职,这半年以来,一直靠做一些外包app养活自己!也算是达成了自己年前制定的目标!可是也想着总不能一直做外包吧,所以决定做一些自己觉得有意思的app,挂到应用商店上和app store上,只要有1-2k或者1-2w的活跃用户,自己也就满足了!
最近寻思做一个语音feed系统,难点呢,其实也就是在android和ios音频互通上!忙了一个星期解决了这个问题,所以就和大家分享下!
先说下整体的设计方案:
服务器:php
数据库:redis
协议:http + json
客户端 : android(java) + ios(oc)
在音频的格式选择问题上,犹豫了很久,这里其实有N个方案的,不过对于我这种非多媒体开发者来讲,还是选择一个最直接最能解决问题的就可以了!起初选择的是amr,android一切都ok,但是在ios上,wav格式的音频文件解析成amr格式的文件,或者amr格式的音频文件解码成wav格式的文件是总是出错,用的是github上的libcoreamr库,不明所以!当然如果谁解决了还是可以跟我聊下!
最终选择了mp3的格式!缺点就是生成的音频文件比amr文件要大!优点就是我解决了!哈哈
下面干货代码:首先是android 部分,相对比较简单,就是通过mic录制成mp3文件,然后上传服务器!
录音部分:其实就是对于MediaRecorder的使用,
View Code
剩下的播放部分就很简单了,无论是android还是ios,只要使用系统提供的播放器,从服务器拿到mp3文件的url,就可以只接播放了,因为mp3是通用的音频格式,无论是android还是ios都不需要做什么转换!直接播放就ok!
最近寻思做一个语音feed系统,难点呢,其实也就是在android和ios音频互通上!忙了一个星期解决了这个问题,所以就和大家分享下!
先说下整体的设计方案:
服务器:php
数据库:redis
协议:http + json
客户端 : android(java) + ios(oc)
在音频的格式选择问题上,犹豫了很久,这里其实有N个方案的,不过对于我这种非多媒体开发者来讲,还是选择一个最直接最能解决问题的就可以了!起初选择的是amr,android一切都ok,但是在ios上,wav格式的音频文件解析成amr格式的文件,或者amr格式的音频文件解码成wav格式的文件是总是出错,用的是github上的libcoreamr库,不明所以!当然如果谁解决了还是可以跟我聊下!
最终选择了mp3的格式!缺点就是生成的音频文件比amr文件要大!优点就是我解决了!哈哈
下面干货代码:首先是android 部分,相对比较简单,就是通过mic录制成mp3文件,然后上传服务器!
录音部分:其实就是对于MediaRecorder的使用,
$body["rId"] = $rId; $base_path = "../radio/"; //接收文件目录 $target_path = $base_path .$rId.".mp3"; move_uploaded_file ( $_FILES ['radioContent'] ['tmp_name'], $target_path ); outPut($body);
View Code
剩下的播放部分就很简单了,无论是android还是ios,只要使用系统提供的播放器,从服务器拿到mp3文件的url,就可以只接播放了,因为mp3是通用的音频格式,无论是android还是ios都不需要做什么转换!直接播放就ok!
相关文章推荐
- Android学习之IO流
- Android-SharePreference
- ANDROID版本号和版本名称的重要性介绍
- Android 基于Socket的聊天室(一)
- Android 基于Socket的聊天应用(二)
- Android数据库SQLite使用详解三 : 数据库的升级
- Android AIDL机制
- Android ADB的使用
- Android反射机制
- Android:使用JDBC链接MySQL数据库
- EventBus 学习进阶
- 手机管家中的黑名单功能
- Android IOS WebRTC 音视频开发总结(三十)-- ice协议异同
- Android OpenGL ES(一)----必备知识
- 关于 android 的 view.getLeft(), getRight(), getTop(), getBottom() 的一些疑惑(坑)解答
- android 4.4删除短信
- Android学习笔记之AndroidManifest.xml文件解析
- android ActionBar
- AndroidStudio中百度地图接口使用配置相关总结
- 解决android studio ADB无响应的问题:If you'd like to retry,then please manually kill "adb.exe"