Разработка потокового сервера для Android - PullRequest
3 голосов
/ 06 апреля 2011

Я пытаюсь разработать Streaming AV Media Server для использования с телефоном Android в качестве клиента.Это сразу накладывает на меня ограничение при разработке сервера, использующего RTSP.Я разбираюсь в программировании на Java и обнаружил, что Netty (Java NIO) может использоваться для заполнения огромного пробела в Java Media Framework для этого протокола.Я играл с этим и не имел реального успеха.Я знаю о live555, но у меня плотный график, и я не очень хочу возиться с C ++, так как очень мало знаю по этому вопросу.Я застрял на этой проблеме в течение многих недель, и мне нечего показать.Потоковая передача на Android должна быть возможной, так как на рынке Android есть множество проприетарных приложений.Может кто-то, кто имеет опыт и знания в этой области, пожалуйста, дайте мне знать, если есть простой способ реализовать медиасервер RTSP AV, который просто транслирует .mp4 или .3gp и .mp3 для использования с android без использования библиотек live555.Если нет, то мне просто нужно быстро освоиться на C ++.Заранее спасибо.

Ответы [ 3 ]

2 голосов
/ 06 апреля 2011

ОК, просто для потоковой передачи по HTTP.

Я создал виртуальную папку под названием «Музыка» с IIS на WinXP и указал ее на папку, содержащую 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 с немного большим количеством кода - он будет лучше обрабатывать ошибки и не потребует намного больше работы.

1 голос
/ 04 января 2012

Разработка потокового сервера RTSP с Netty - довольно простая задача, которая не занимает много времени.Я сам написал это, и это работало как очарование.Для начала вы можете посмотреть примеры реализации некоторых других серверов, использующих инфраструктуру Netty.

0 голосов
/ 06 апреля 2011

Я не уверен, каковы ваши конкретные потребности, но для статических файлов вы можете попробовать объединить Amazon S3 и CloudFront , который, я считаю, поддерживает RTSP.

...