Форум программистов, компьютерный форум, киберфорум
Наши страницы

Программирование Android

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 9, средняя оценка - 4.89
Squire
0 / 0 / 0
Регистрация: 28.09.2013
Сообщений: 3
#1

Воспроизведение AudioStream (Протокол RTP) - Программирование Android

28.09.2013, 20:11. Просмотров 1335. Ответов 1
Метки нет (Все метки)

Хочу написать программу, которая будет ловить стрим с ПК по Wifi и воспроизводить на динамики. Программа для ПК уже написана и вполне работает. С созданием потока вроде разобрался, а вот с его воспроизведением возникли проблемы.

Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
package rtpConnection;
 
import java.net.InetAddress;
import java.net.SocketException;
import java.net.UnknownHostException;
 
 
import android.net.rtp.AudioCodec;
import android.net.rtp.AudioGroup;
import android.net.rtp.AudioStream;
import android.net.rtp.RtpStream;
import android.util.Log;
 
public class Connection extends Thread
{
    
    public static AudioStream inRtpStream;
    private static InetAddress addr=null;
    @Override
    public void run() {
        try {
            Connection.startConnection();
        } catch (Exception ex) {
              Log.d("Error", "Fail to run thread");
              System.exit(1);
        }
    }
    
    public static void startConnection()
    {
        //Создаем поток
        addr = createInet(127,0,0,1);
         try {
                inRtpStream = new AudioStream(addr);
        } catch (SocketException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
                System.exit(1);
        }
        inRtpStream.setMode(RtpStream.MODE_RECEIVE_ONLY);
        inRtpStream.setCodec(AudioCodec.PCMU);
        //ассоциируем его с удаленным адресом
        inRtpStream.associate(createInet(192,168,1,5), 17777);
        //Код дальше я скопировал, как я понял AudioGroup должен совмещать поток и воспроизводящие устройства, но как он работает так и не разобрался
        AudioGroup main_grp = new AudioGroup();
        main_grp.setMode(AudioGroup.MODE_NORMAL);
        main_grp.clear();
        inRtpStream.join(main_grp);
        Log.d("Log"," Group joined "+inRtpStream.getLocalPort());
    }
    
    private static InetAddress createInet(int b1, int b2, int b3, int b4) 
    {
        InetAddress addr = null;
        try 
        {
           addr = InetAddress.getByAddress(new byte[] {(byte)b1, (byte)b2,
                                                        (byte)b4, (byte)b3
                                                        });
        } 
        catch (UnknownHostException e) 
        {
            Log.d("Error", "Cannot create Inet address");
            System.exit(1);
        }
        return addr;
    }
}
Объясните балбесу как его воспроизводить. Либо киньте линк на объяснение работы RTP и воспроизведение потока на Android. Пожалуйста =)
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
28.09.2013, 20:11
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Воспроизведение AudioStream (Протокол RTP) (Программирование Android):

Клиент - сервер протокол - Программирование Android
Всем привет. Я пытаюсь понять как и с помощью чего можно организовать клиент-серверное приложение. Гуглю вторую неделю, перечитал кучу...

Протокол SMB доступ - Программирование Android
Всем привет, вообщем задача получить список файлов с расшаренного каталога на сервере, ничего по теме в инете не нашел кроме готовых...

Как работать через протокол OAuth 1.0 ? - Программирование Android
Объясните/приведите пример, того как работать через протокол OAuth 1.0 ?

Http протокол: что подразумевается под словом "протокол" - C# MVC
Начал разбирать Http-протакол. Http- это протокол передачи гипертекста. 1 ) Не сильно понимаю что подразумевается под словом...

Разбор RTP - C++
Хочу уточнить пару моментов по разбору RTP-пакетов. С помощью Wireshark сделал дамп и записал его в файл. Следует извлечь данные из...

видео по RTP/RTCP - C++
Всем привет. Нужно передавать видео по RTP/RTCP протоколам. Кто что знает по этому поводу. Есть ли в виндоус реализованные методы, как...

1
vxg
Модератор
3184 / 1987 / 227
Регистрация: 13.01.2012
Сообщений: 7,676
29.09.2013, 08:01 #2
мб попробовать не группой его играть а плеером
AudioPlayer.player.start(audioStream);
хотя даже так как у вас - по докам после join группа должна начать воспроизведение если установлен корректный режим (+наверное нужно выбирать не NORMAL, а MUTED)
сам не пробовал ни того ни другого.
1
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
29.09.2013, 08:01
Привет! Вот еще темы с ответами:

RTP. Пакеты в секунду. - Телефония
Всем привет, у меня есть вопрос, в котором самостоятельно разобраться сам не смог, нужна помощь. Передаем пару 16-битных слов, частота -...

Работа по RTP протоколу - C++
RTP является надстройкой над UDP и имеет вид typedef struct _RTP_HEADER { //--- NETWORK BYTE ORDER BEGIN ---// WORD NumCSRC:4; ...

Java и поддержка RTP - Java Сети
Здравствуйте форумчане! Опыт в сетевом программировании небольшой, как то писался чат используя java.net.Socket и java.net.ServerSocket и...

Генерация заголовка RTP - C++
Перерыл много информации по RTP но так и не понял, как мне реализовать в с++ генерацию заголовка. Как мне работать с байтовым типом, если в...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru