Android完美实现录音编辑器

本文详细介绍了如何在Android平台上实现一个录音编辑器,涵盖了从目标设定、准备工作到功能实现和技术问题解决的全过程。重点讨论了MediaPlayer的进度跟踪、Chronometer的精度调整、屏幕常亮设置以及关闭编辑器的交互设计。最后,作者回顾了开发过程,并展望了未来将要实现的录音显示和多录音播放功能。
摘要由CSDN通过智能技术生成

一、目标

实现录音编辑器,为神马笔记增加录音功能做准备。
在这里插入图片描述

二、准备工作

序号 准备工作 描述
1 Android实现录音功能汇总 全面了解Android实现录音功能的各种方式,并且比较方式的优劣,最终选择MediaRecorder来实现录音。
2 Android低仿iOS Messages录音波形效果 使用MediaRecorder实现录音,并封装成TapeRecordView方便调用。
3 Android高仿iOS Messages声音播放波形效果 使用MediaPlayer播放录音,并封装成TapePlayView方便调用。
4 Android高仿iOS Messages录音操作按钮 实现ActionLayout作为滑动按钮。
5 Android使用PopupWindow高仿iOS Messages录音弹出界面 选择录音编辑器的容器,比较了Activity、Dialog、PopupWindow、FrameLayout,并选择PopupWindow作为容器。

通过5个阶段的准备工作,解决了录音相关的所有技术问题。

最后一步便是把所有功能组合到一起。

三、功能分析

1. 界面组成

整个录音编辑器界面分为2个部分。

  1. 波形
  2. 操作
界面组成 控件组成
波形 关闭按钮
录音波形、播放波形
时间显示
操作 发送按钮
停止录音、播放录音,暂停播放

2. 事件处理

事件 触发条件 处理方式
布局变化 通常情况下,布局不会发生变化。
长按电源键或者来电时,会隐藏软键盘,从而引起布局变化。
调整编辑器位置。
切换到后台 用户按下多任务键或者Home键,或者来电时,将应用切换到后台。 停止录音、停止播放
截图 描述
在这里插入图片描述 长按电源键,将会隐藏软键盘。

四、实现过程

序号 过程
1 定义PopupTape作为编辑器类,并实现show方法以显示界面
2 实现录音及停止功能
3 实现播放及暂停功能
4 显示录音及播放时间进度
5 实现关闭功能,通过关闭按钮以及用户按下返回键
6 处理dispatchTouchEvent事件,实现弹出界面后可以继续操作。
7 处理onGlobalLayout事件,对编辑器重新布局。
8 处理onStop事件,切换到后台时自动停止录音及播放。
9 增加对外事件回调接口BiConsumer<PopupTape, Integer>,用于告知用户操作结果。
10 增加属性访问接口,以插叙PopupTape属性。

五、一些技术问题

1. MediaPlayer

MediaPlayer播放过程中,调用getCurrentPosition方法获取当前播放进度。

出现时间回退的情况,出现在250毫秒~300毫秒之间。

// ..., 256, 257, 258, 258, 224, 225, 226, 227, ...

导致了绘制波形时,出现闪烁的情况。

int current = mMediaPlayer.getCurrentPosition();
this.currentPosition = (current > this.currentPosition)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值