我跟着这个example转换来自AudioRecord原始音频数据为MP3,并且它成功发生,如果我将这个数据存储在一个文件的MP3文件和播放与音乐播放器,然后它是可以听到的。播放mp3数据压缩由JLayer和Audiotrack latin mp3在android

现在我的问题是,而不是将MP3数据存储到一个文件,我需要用AudioTrack播放它,数据来自Red5媒体服务器作为直播流,但问题是AudioTrack只能播放PCM数据,所以我只能听到来自我的数据的噪音。

现在我使用JLayer来完成我所需要的任务。

我的代码如下。

int readresult = recorder.read(audioData, 0, recorderBufSize);

int encResult = SimpleLame.encode(audioData,audioData, readresult, mp3buffer);

并且此mp3buffer数据由Red5流发送给其他用户。其他用户收到

数据是流的形式,所以播放它的代码是

Bitstream bitstream = new Bitstream(data.read());

Decoder decoder = new Decoder();

Header frameHeader = bitstream.readFrame();

SampleBuffer output = (SampleBuffer) decoder.decodeFrame(frameHeader, bitstream);

short[] pcm = output.getBuffer();

player.write(pcm, 0, pcm.length);

但2-3秒后,我的代码冻结在bitstream.readFrame,也不会发出声音之前产生。

任何猜测会是什么问题?任何建议表示赞赏。

注意:我不需要存储mp3数据,所以我不能使用MediaPlayer,因为它需要一个文件或filedescriptor。

+0

'AudioRecord'给你PCM数据,'AudioTrack'播放PCM数据。所以如果你不需要将音频保存到一个文件中,为什么你要对它进行编码? (即使由于某种原因需要对mp3进行编码,仍然可以采用与编码器相同的PCM数据并将其写入'AudioTrack')。 –

+0

原因是我需要通过网络传输数据,普通的PCM数据导致大量的数据发送(每个样本4K)和MP3需要(最多500字节),所以发送者发送MP3数据和接收器接收这个MP3数据连续流。 –

+0

好的,但我以前的评论的最后一部分仍然适用。 –

android audiotrack mp3,播放mp3数据压缩由JLayer和Audiotrack latin mp3在android相关推荐

  1. android蓝牙耳机录音播放,是否可以录制蓝牙耳机的声音并同时在Android扬声器上播放?...

    记录使用AudioRecord public class MainActivity extends Activity { public static final int SAMPLE_RATE = 1 ...

  2. vb制作MP3播放器

    在本实例中,我们将制作一个MP3播放器.程序运行时,可以选择MP3文件,选择左右声道声音,总共播放所需的时间等.程序运行结果如图所示. 技术要点 l         注册 Mp3Play 控件 l   ...

  3. 基于C开发一款简洁实用的Mp3播放器

    C++ 音频编程:一款简洁实用的Mp3播放器源代码,只是实现基本的MP3文件播放.暂停.音量控制等功能,界面采用的传统窗体风格,核心代码在下载本源码后,可参考Mp3PlayerDlg.cpp文件. 项 ...

  4. 【android】音乐播放器之数据存储总结

    学习Android有一个多月,看完了<第一行代码>以及mars老师的第一期视频通过音乐播放器小项目加深对知识点的理解.从本文开始,将详细的介绍简单仿多米音乐播放器的实现,以及网络解析数据获 ...

  5. java mp3 暂停,Java MP3播放器 - 使用jLayer播放,暂停和搜索不能正常工作

    我正在尝试在java中实现mp3播放器,它将从字节数组中播放音频 . 该类应该像这样工作: 加载用aes加密的mp3文件 将其解密为bytes / inputstream数组 播放变量中的音乐 让用户 ...

  6. 我的Android进阶之旅------Android MediaPlayer播放网络音频的实例--网络mp3播放器

    上一篇写了个简单的MP3播放器 ,这次写一个可以播放网络音频资源的播放器 本实例可以实现音乐播放器除了来电的时候会暂停播放,通话结束后恢复播放外,打开其他的Activity都可以继续播放音乐,享受一边 ...

  7. 我的Android进阶之旅------Android MediaPlayer播放mp3的实例--简易mp3播放器

    大家好我们今天研究的是Android中很重要也最为复杂的媒体播放器---MediaPlayer. Android的MediaPlayer包含了Audio和video的播放功能,在Android的界面上 ...

  8. Android实现mp3分析,Android编程实现播放MP3功能示例

    本文实例讲述了Android编程实现播放MP3功能.分享给大家供大家参考,具体如下: 在android中播放mp3非常简单,也是项目中经常使用的,比如说要做项目的背景音乐,应用中某些功能的提示音等的. ...

  9. java 视频边下边播,android 边下边播放mp3完美实现(有缓冲和播放进度效果)

    [实例简介] android 边下边播放mp3完美实现,有缓冲和播放进度效果. [实例截图] [核心代码] MusicPlayer ├── __MACOSX │   └── MusicPlayer │ ...

最新文章

  1. @Override的错误
  2. 关于Linux的总结(三)
  3. PostgreSQL 12系统表(6)pg_namespace
  4. 用Keras搭建神经网络 简单模版(三)—— CNN 卷积神经网络(手写数字图片识别)...
  5. 【重点】Batch Normalization的诅咒
  6. WCF系列教程之WCF服务宿主与WCF服务部署
  7. 系统集成项目管理工程师有什么用?
  8. 阿里出品的最新版 Java 开发手册,嵩山版,扫地僧
  9. 哲学的终极解释:48张图了解48种主义
  10. 电脑硬件基础知识科普
  11. React表格内容换行并用省略号显示
  12. CNN卷积神经网络(图解CNN)
  13. Java实现批量文件加密
  14. 人民币小写转大写的一般方法
  15. 网络知识基础篇(网络分层和IP地址)
  16. Android下的配置管理之道之主从gerrit配置使用replication插件
  17. String转QString,线段相交,四点共面,git相关操作,截图,扩展工具,string乱码,矩阵相乘
  18. 【Basic Use Case】
  19. 隐私计算--25--联邦学习激励机制
  20. 日语 罗马拼音 输入法规则

热门文章

  1. linux文件的三个主要的修改时间
  2. Shell 条件表达式的正则匹配
  3. Linux 命令(51)—— ipcs 命令
  4. 汽车系统实现--搜索功能
  5. 获取响应里面的cookie的方法
  6. ASP.NET前台html页面AJAX提交数据后台ashx页面接收数据
  7. Spring中IOC和AOP的详细解释(转)
  8. Qt5.4生成安装包过程
  9. MySQL之GROUP BY用法误解
  10. buntu下shell脚本运行异常:bash和…