我想创建一个能够接收音频流的Android应用程序.我想过使用A2DP配置文件,但似乎Android不支持A2DP接收器.看起来有很多人在寻找这个问题的解决方案.但接收普通比特流,然后将数据转换为应用程序中的音频呢?我想通过RFCOMM(SPP蓝牙配置文件)接收PCM或Mp3数据流,然后使用AudioTrack播放它.
首先,如何通过RFCOMM在我的Android手机上接收比特流?是否可以通过RFCOMM作为PCM或Mp3流接收比特流?
其次,如果不能通过RFCOMM接收比特流作为PCM或Mp3流,我如何将接收的比特流转换为音频?
第三,如何将接收的数据转换为音频并同时"实时"播放音频?我可以使用onDataReceived吗?
要清楚,我对使用A2DP配置文件不感兴趣!我想通过RFCOMM(SPP蓝牙配置文件)传输数据.接收的数据流将采用PCM或Mp3.我想写自己的应用程序,但如果有人知道一个应用程序来解决这个问题,我很高兴听到它!我正在使用Android 2.3 Gingerbread.
/约翰尼
是否可以使用HTML5播放shoutcast/icecast流?
如果是这样,我该如何实施呢?
是否可以通过蓝牙传输音频?在我的研究过程中,我发现它只能使用A2DP(Advanced Audio Distribution Profile).每个Android设备都支持A2DP吗?如果没有,是否可以使用蓝牙在两个Android设备之间传输音频?请帮我理解这个.
我查看了以下链接:
是否可以用html5播放shoutcast(或某些)互联网广播流?
所以我有下一个代码:
<html>
<body>
<audio src="http://shoutcast.internet-radio.org.uk:10272/" />
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
我将其保存为HTML页面并启动我的浏览器(Google Chrome 4.0.249.78,safary或FF)
但它不起作用/工作!(
它不会与我试图播放的任何其他网络电台一起播放!(
为什么!?!我究竟做错了什么?
btw:来自HTML5(包括仍处于开发阶段的下一代新增功能)2.6.1协议概念 用户代理可以实现各种传输协议,但是本规范主要根据HTTP定义行为.[HTTP]
HTTP GET方法等同于协议的默认检索操作.例如,FTP中的RETR.在HTTP术语中,此类操作是幂等且安全的.
HTTP响应代码等同于具有相同基本含义的其他协议中的状态.例如,"找不到文件"错误等同于404代码,服务器错误等同于5xx代码,依此类推.
HTTP标头等同于具有相同基本含义的其他协议中的字段.例如,HTTP身份验证标头等同于FTP协议的身份验证方面.
我听到一些有关此事的相互矛盾的报道.我想要做的是从URL流式传输mp3文件.我做了几个小时的研究,但是我找不到任何关于如何做到这一点的好指南,甚至找不到我应该使用什么样的音频播放器.
有些朋友告诉我,AVPlayer可以流式播放mp3,但Apple文档说它不能.我已经倾倒了Matt Gallagher的音频流(http://www.cocoawithlove.com/2008/09/streaming-and-playing-live-mp3-stream.html),但该代码是很久以前制作的,并且我对此很新,很难通过自动释放和保留以及所有这些.
我正在尝试流式传输的音频是一个来自libsyn服务器的相当大的mp3文件,其格式为URL.
http://traffic.libsyn.com/podcastname/episode.mp3
Run Code Online (Sandbox Code Playgroud)
我需要做的就是抓住它并开始玩,具有暂停和擦洗的能力.首先,CAN AVPlayer流MP3是什么?如果是这样,是否有人可以指向我的任何指南或代码?如果没有,是否有任何类型的音频播放器类可以传输音频?
我已经尝试创建一个AVPlayerItem,用URL初始化,然后将其添加到AVPlayer,但我得到了大量的错误加载...和符号未找到...错误.我很感激有关这方面的任何信息,谢谢!
我正在使用Android,试图让我的AudioTrack应用程序播放Windows .wav文件(Tada.wav).坦率地说,它应该不是那么难,但我听到很多奇怪的东西.该文件保存在手机的迷你SD卡上并且读取内容似乎不是问题,但是当我播放文件时(带参数我只是PRETTY SURE是正确的),我得到几秒钟的白噪声在声音似乎将自己解决为可能正确的事物之前.
我已经成功录制并在手机上播放了自己的声音 - 我根据此示例中的说明创建了一个.pcm文件:
http://emeadev.blogspot.com/2009/09/raw-audio-manipulation-in-android.html
(没有向后掩盖)......
任何人都有一些建议或意识到网上的一个例子在Android上播放.wav文件?
谢谢,R.
我的应用程序需要很长时间来准备和缓冲音频流.我已经读过这个问题为什么Android的MediaPlayer需要这么长的时间来准备一些直播的流媒体?然而,它只是说人们已经遇到过这个问题,它没有说明如何改善这个问题.
我在所有版本的Android中都遇到过这种情况,从2.2 - 4.1.2开始测试.
这些流具有适合移动和3G连接的比特率.在相同的iOS应用程序中,相同的流只需不到一秒钟即可开始缓冲.
有没有办法指定应该缓冲的时间量?我知道Tune In广播应用程序提供此功能(https://play.google.com/store/apps/details?id=tunein.player).
谢谢.
编辑:我再次测试,发现它只发生在运行Gingerbread及以上的设备上(> = 2.3).我知道Android将底层框架从OpenCore改为StageFright.那么我该如何优化媒体框架呢?旧的HTC Wildfire可以准备,流式传输和播放,这比全新的HTC One X和Nexus 7快10倍.
我想听一个RTP音频流,但是它的声音几乎没有差距 - 不会继续.可能是什么解决方案?我在Receiver(android)方面或Streamer(ffmpeg)方面遗漏了什么?
我正在使用ffmpeg来传输RTP音频,
ffmpeg -f lavfi -i aevalsrc="sin(400*2*PI*t)" -ar 8000 -vcodec pcm_u8 -f rtp rtp://192.168.0.15:41954 (port changes.)
Run Code Online (Sandbox Code Playgroud)
这是我的相关android代码:
AudioStream audioStream;
AudioGroup audioGroup;
@Override
public void onStart() {
super.onStart();
StrictMode.ThreadPolicy policy = new StrictMode.ThreadPolicy.Builder().permitNetwork().build();
StrictMode.setThreadPolicy(policy);
AudioManager audio = (AudioManager)getSystemService(AUDIO_SERVICE);
audio.setMode(AudioManager.MODE_IN_COMMUNICATION);
audioGroup = new AudioGroup();
audioGroup.setMode(AudioGroup.MODE_ECHO_SUPPRESSION);
InetAddress inetAddress;
try {
inetAddress = InetAddress.getByName("192.168.0.15");
audioStream = new AudioStream(inetAddress);
audioStream.setCodec(AudioCodec.PCMU);
audioStream.setMode(RtpStream.MODE_NORMAL);
InetAddress inetAddressRemote = InetAddress.getByName("192.168.0.14");
audioStream.associate(inetAddressRemote, 6000);
((TextView)findViewById(R.id.tv_port)).setText("Port : " + String.valueOf(audioStream.getLocalPort()));
audioStream.join(audioGroup);
}
catch ( UnknownHostException e ) {
e.printStackTrace();
}
catch …Run Code Online (Sandbox Code Playgroud) 我找到了一些Android RTMP库(比如:http://rtmpdump.mplayerhq.hu/).
问题是没有关于我们如何使用它的准确文档.
在我的例子中,我有一个简单的RTMP现场音频流(例如:rtmp:// myserver/myapp/myliveaudio).
在我的Android应用中阅读它的最简单方法是什么?
请,我不想要链接:我需要一些代码或一些准确的逐步解释.
非常感谢你.
在Android中,在来电时,我想收到它.然后,从我的应用程序,在通话过程中自动播放音频文件,另一方应听到它.这可能吗?