我正在尝试开发适用于Android手机的流媒体AV媒体服务器作为客户端。这立即给我制约了开发一个使用RTSP的服务器。我熟悉Java编程,并发现可以使用Netty(Java NIO)来填补此协议的Java Media Framework中的其他巨大缺口。我玩过它并没有取得真正的成功。我知道live555,但我的日程安排很紧,并不想开始搞乱C++,因为我对这个主题知之甚少。我一直被困在这个问题上好几个星期,没有什么真正的表现。由于Android市场上有许多专有应用程序,因此必须流式传输至android。如果有一种简单的方法来实现一个RTSP AV媒体服务器,它只需流传输.mp4或.3gp和.mp3以便在不使用live555库的情况下使用android,那么是否能够有经验和有关此主题的知识?如果没有,我只需要快速熟悉C++。先谢谢你。开发适用于Android的流媒体服务器
回答
好吧,很简单,因为这是使用HTTP流式传输。
我在WinXP上用IIS创建了一个名为'Music'的虚拟文件夹,并将其指向包含mp3文件的文件夹。这是流式传输文件所需的完整活动(名称硬编码)。
顺便说一句,它叫做SimpleNetRadio,就像我最初开始玩Shoutcast流一样。
package com.mycompany.SimpleNetRadio;
import android.app.Activity;
import android.media.AsyncPlayer;
import android.media.AudioManager;
import android.net.Uri;
import android.os.Bundle;
public class SimpleNetRadio extends Activity
{
private AsyncPlayer ap = null;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
}
@Override
protected void onStart() {
super.onStart();
ap = (AsyncPlayer) getLastNonConfigurationInstance();
}
@Override
protected void onStop() {
super.onStop();
if (ap != null)
ap.stop();
}
@Override
protected void onResume() {
super.onResume();
if (ap == null) {
ap = new AsyncPlayer("Simple Player");
ap.play(this, Uri.parse("http://192.168.1.1/Music/02%20-%20Don't%20Stop%20Believin'.mp3"), true, AudioManager.STREAM_MUSIC);
}
}
@Override
public Object onRetainNonConfigurationInstance() {
return ap;
}
}
你也应该能够与更多的代码与MediaPlayer的做到这一点 - 这将更好地处理错误条件,也不会需要更多的工作。
它也可以用于https和mp4吗? – 2013-05-02 14:21:50
@AdilMalik:对不起,我不知道。我从来没有试过。上面的代码非常独立,您需要做的就是创建一个Android项目并将上面的代码复制/粘贴到它中,然后尝试。 – Squonk 2013-05-02 19:39:40
我不确定您的具体需求是什么,但对于静态文件,您可能会尝试将Amazon S3和CloudFront相结合,我相信它支持RTSP。
嗨,欢迎回复。这个主题看起来非常有趣,但它并不是我正在寻找的东西。我希望开发服务器,以便它可以在家庭联网的计算机上进行恶意安装。 – user673090 2011-04-05 23:26:07
使用Netty开发RTSP流媒体服务器是相当直接的任务,不需要太多时间。我自己写了它,它像魅力一样工作。你可以看看使用Netty框架开始的一些其他服务器的示例实现。
- 1. 用于Window和Linux的开源音频流媒体服务器?
- 2. 流媒体音频不适用于Android
- 3. 流媒体到Adobe媒体服务器
- 4. Microsoft媒体流媒体服务 - 我可以将其用于自适应流媒体吗?
- 5. 流媒体视频达尔文流媒体服务器问题
- 6. 开源Web服务/ WCF媒体流
- 7. 流媒体服务器的备份
- 8. 适用于Android/iPhone应用程序的广告媒体 - 服务器端
- 9. 达尔文流媒体服务器 - 自适应比特率?
- 10. Android媒体播放器流媒体
- 11. Flash媒体服务器(FMS)流录制
- 12. DIY:视频流媒体服务器
- 13. Ios流到Wowza媒体服务器
- 14. 无法从MJPEG流媒体服务器
- 15. 设置Flash流媒体服务器
- 16. 流媒体服务器和主机
- 17. iPhone HTTP流媒体服务器组件
- 18. 处理流媒体服务器
- 19. 视频流媒体服务器软件
- 20. WCF流媒体服务
- 21. 开源的Mac视频流媒体服务器解决方案?
- 22. 亚马逊云媒体服务器流媒体帮助
- 23. 闪存媒体服务器流媒体:内容保护
- 24. 从Android相机到服务器的流媒体直播视频
- 25. 基于Linux系统的ONVIF兼容开源流媒体服务器
- 26. 是播放iPhone流媒体视频所必需的流媒体服务器吗?
- 27. 任何C/C++开源RTMP流媒体服务器?
- 28. 构建开源媒体服务器
- 29. 适用于iPhone4的HLS流媒体播放器
- 30. 媒体查询不适用于Android 4.2.2
@ user673090:我不明白这句话......“这立即给我制定了一个使用RTSP的服务器的限制条件”......为什么你不得不使用RTSP?我可以在IIS中创建一个虚拟目录,指向我的PC上的音乐文件夹,并通过Wi-Fi连接使用HTTP将不超过几行代码流mp3文件传输到我的Android设备。好吧,我并不是说这就是你称之为“健壮”的AV服务器解决方案,但它肯定不需要RTSP。详细说明您为什么需要RTSP以及它与Android有什么关系。 – Squonk 2011-04-05 23:50:27
嗨,感谢您的回复。我真的一直在苦于RTSP转移到Android。这个结论已经被绘制并且与Android相关的原因是,如果RTP要通过传输协议使用,则必须使用RTSP。现在我意识到HTTP也可以用于流(逐步),这很快成为一个更好的选择。您能否详细说明您如何以及如何通过HTTP将音乐流式传输至手机。谢谢。 – user673090 2011-04-06 00:07:11
@ user673090:好的,我理解RTP和RTSP之间的关系,但我仍不明白什么会让您认为流式传输到Android设备将需要RTP。给我10分钟,我会张贴一些代码来演示我的HTTP示例。 – Squonk 2011-04-06 00:18:52