为Android开发流媒体服务器

为Android开发流媒体服务器,android,streaming,rtsp,Android,Streaming,Rtsp,我正在尝试开发一个流式AV媒体服务器,用于Android手机作为客户端。这立即限制了我开发使用RTSP的服务器。我精通Java编程,并且发现Netty(JavaNIO)可以用来填补Java媒体框架中关于该协议的巨大空白。我一直在玩弄它,但没有取得真正的成功。我知道LIVE55,但是我的日程很紧,我真的不想开始用C++来解决问题,因为我对这个问题知之甚少。我已经在这个问题上纠缠了好几个星期了,没有什么真正的表现。流媒体传输到android必须是可能的,因为android市场上有许多专有应用程序。如

我正在尝试开发一个流式AV媒体服务器,用于Android手机作为客户端。这立即限制了我开发使用RTSP的服务器。我精通Java编程,并且发现Netty(JavaNIO)可以用来填补Java媒体框架中关于该协议的巨大空白。我一直在玩弄它,但没有取得真正的成功。我知道LIVE55,但是我的日程很紧,我真的不想开始用C++来解决问题,因为我对这个问题知之甚少。我已经在这个问题上纠缠了好几个星期了,没有什么真正的表现。流媒体传输到android必须是可能的,因为android市场上有许多专有应用程序。如果有人在这方面有经验和知识,请告诉我是否有一种简单的方法来实现一个RTSP AV媒体服务器,只流.mp4或.3gp和.mp3供android使用,而不使用live555库。如果不是,我只需要快速地在C++上加速。先谢谢你

我不确定您的具体需求是什么,但是对于静态文件,您可以尝试结合Amazon S3和,我相信它们支持RTSP。

好的,使用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完成这项工作,只需多花一点代码—它可以更好地处理错误情况,并且不需要做更多的工作。

使用Netty开发RTSP流媒体服务器是一项相当简单的任务,不需要花费太多时间。这是我自己写的,效果很好。您可以看看其他一些服务器的示例实现,使用Netty framework开始。

Hi,为您的响应干杯。张贴的主题看起来很有趣,但它不是我真正想要的。我希望开发服务器,以便将其安装在家庭网络计算机上。@user673090:我不理解这句话……”“这立即限制了我开发一个使用RTSP的服务器”……为什么您必须使用RTSP?我可以在IIS中创建一个虚拟目录,指向我电脑上的音乐文件夹,通过wi-fi连接使用HTTP连接到我的Android设备,不超过几行的码流mp3文件。好的,我并不是说这就是你们所说的“健壮的”AV服务器解决方案,但它肯定不需要RTSP。详细介绍为什么需要RTSP,以及它与Android的具体关系。您好,感谢您的回复。我一直在努力将RTSP传输到Android。得出这个结论并与Android相关的原因是,如果要通过传输协议使用RTP,则必须使用RTSP。现在我意识到HTTP也可以用于流式传输(渐进式),这很快成为一个更好的选择。你能详细说明一下你是如何通过HTTP将音乐传输到手机上的吗。谢谢。@user673090:好的,我理解RTP和RTSP之间的联系,但我仍然不明白是什么让你认为流式传输到Android设备需要RTP。给我10分钟,我将发布一些代码来演示我的HTTP示例。@user673090:仔细想想,我理解您为什么要使用RTP/RTSP…进行搜索控制等,对吗?RTP/RTSP是巨大的——我已经在角落里的一堆纸上打印出了RFC,我不确定我是否想从头开始实现它。总之,我的答案中有简单的渐进式HTTP流代码。@AdilMalik:对不起,我不知道。我从来没有试过。上面的代码基本上是自包含的,您所需要做的就是创建一个Android项目,并将上面的内容复制/粘贴到其中,然后进行尝试。