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

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

Войти
Регистрация
Восстановить пароль
 
Kolhoz
0 / 0 / 0
Регистрация: 19.12.2016
Сообщений: 5
#1

Воспроизведение аудиопотока из интернета - Программирование Android

19.12.2016, 11:00. Просмотров 515. Ответов 7
Метки нет (Все метки)

Есть приложение, которое воспроизводит аудиопотоки из интернета (онлайн радио). Вот ссылки на радио

http://music.nextweb.ru:9500/armynskiy_XIT
http://music.nextweb.ru:9500/armynskaya

Так вот в моем приложении, прежде чем поток начнет играть проходит секунд 5-10, использую MediaPlayer. Нашел на маркете другое приложение (https://play.google.com/store/apps/details?id=atassis.caucasesradio), где эти же радиостанции играют, но там они сразу начинают воспроизводиться.

В связи с этим у меня вопрос. Есть ли еще какая-то возможность или библиотеки чтобы потоковые аудио такого рода сразу воспроизводились?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
19.12.2016, 11:00
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Воспроизведение аудиопотока из интернета (Программирование Android):

Прослушивание аудиопотока - Программирование Android
Здравствуйте. Возник вопрос по поводу прослушивания аудиопотока с какого-нить интернет-ресурса. Ну, типа, есть интернет-радио, хочу...

Воспроизведение аудиопотока - Delphi
Пишу программу, что-то вроде онлайн радио. Нужно воспроизвести аудиопоток радиостанции. Для примера я взял ...

Воспроизведение аудиопотока из AVI файла - Delphi
Пытаюсь воспроизвестм звук так AVIFileOpen(AVIFile,PChar(FileName),OF_READ,0); ...

Воспроизведение видео из Интернета - Windows XP
Доброго времени суток! Помогите по следующей проблеме: при попытке воспроизвести видео из интернета, в браузере, компьютер зависает, затем...

Воспроизведение музыки из интернета - Delphi
Добрый день, есть задачка такого рода: по ссылке http://kinolinie.ru/dir/5-1-0-847 есть некая музыка которую можно прослушать и скачать,...

MediaPlayer, воспроизведение видео из интернета - Delphi
Как сделать что бы компонент MediaPlayer воспроизвел видео не с диска , а с хостинга?* На Delphi!

7
Pablito
2525 / 2004 / 624
Регистрация: 12.05.2014
Сообщений: 7,030
Завершенные тесты: 1
19.12.2016, 14:12 #2
ну не знаю, у меня начинает играть сразу после того как срабатывает setOnPreparedListener
0
Kolhoz
0 / 0 / 0
Регистрация: 19.12.2016
Сообщений: 5
20.12.2016, 10:47  [ТС] #3
А какой у вас код?

Добавлено через 10 часов 29 минут
У меня такое выводится в лог

Java
1
2
3
4
5
D/MediaPlayer: setSubtitleAnchor in MediaPlayer
W/MediaPlayer: info/warning (703, 0)
W/MediaPlayer: info/warning (701, 0)
W/MediaPlayer: info/warning (703, 0)
W/MediaPlayer: info/warning (702, 0)
0
Pablito
2525 / 2004 / 624
Регистрация: 12.05.2014
Сообщений: 7,030
Завершенные тесты: 1
20.12.2016, 11:49 #4
та какой там может быть код
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
        final MediaPlayer mp = new MediaPlayer();
        try {
            mp.setDataSource("http://music.nextweb.ru:9500/armynskiy_XIT");
            mp.setAudioStreamType(AudioManager.STREAM_MUSIC);
            mp.setOnPreparedListener(new MediaPlayer.OnPreparedListener() {
                @Override
                public void onPrepared(MediaPlayer mediaPlayer) {
                    mp.start();
                }
            });
            mp.prepareAsync();
        } catch (IOException e) {
            e.printStackTrace();
        }
onPrepared срабатывает через 1-2 сек
0
Kolhoz
0 / 0 / 0
Регистрация: 19.12.2016
Сообщений: 5
20.12.2016, 13:03  [ТС] #5
У меня такой же код. Но после того как он начал играть через пару секунд останавливается и в логе выводится

Java
1
2
3
4
5
D/MediaPlayer: setSubtitleAnchor in MediaPlayer
W/MediaPlayer: info/warning (703, 0)
W/MediaPlayer: info/warning (701, 0)
W/MediaPlayer: info/warning (703, 0)
W/MediaPlayer: info/warning (702, 0)
затем через секунд 5 где-то нормально начинает играть. Можно ли как-то сделать так, чтобы не прерывалось? Я вроде понял что это происходит из-за того что буфер оказывается пустым и начинает играть после того как буфер заполнится.
0
Pablito
2525 / 2004 / 624
Регистрация: 12.05.2014
Сообщений: 7,030
Завершенные тесты: 1
20.12.2016, 13:08 #6
да, я для интереса погуглил, такое у многих наблюдается
и люди рекомендуют не мучаться и использовать ExoPlayer
0
Kolhoz
0 / 0 / 0
Регистрация: 19.12.2016
Сообщений: 5
20.12.2016, 13:10  [ТС] #7
Думал может как-то можно стандартным MediaPlayer получится. Чтож придется сторонние использовать видимо. Спасибо
0
Kolhoz
0 / 0 / 0
Регистрация: 19.12.2016
Сообщений: 5
21.12.2016, 16:12  [ТС] #8
Ситуация такая. Реализовал все через ExoPlayer, на первый взгляд все хорошо. Но есть проблема. Спустя n-ое количество минут радио перестает работать. Причем это время не всегда одинаковое. Может пол часа, может, 10 минут. Использую версию плеера ExoPlayer 2

Вот код:

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
public class Player extends AppCompatActivity {
 
    private String stream;
 
    BandwidthMeter bandwidthMeter;
    TrackSelector trackSelector;
    SimpleExoPlayer player;
 
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_player);
 
        stream = "поток";
 
        bandwidthMeter = new DefaultBandwidthMeter();
        TrackSelection.Factory streamSelectionFactory = new AdaptiveVideoTrackSelection.Factory(bandwidthMeter);
        trackSelector = new DefaultTrackSelector(streamSelectionFactory);
 
        player = ExoPlayerFactory.newSimpleInstance(this, trackSelector, new DefaultLoadControl());
 
        // Measures bandwidth during playback. Can be null if not required.
        DefaultBandwidthMeter bandwidthMeter = new DefaultBandwidthMeter();
        // Produces DataSource instances through which media data is loaded.
        DataSource.Factory dataSourceFactory = new DefaultDataSourceFactory(this, Util.getUserAgent(this, "yourApplicationName"), bandwidthMeter);
        // Produces Extractor instances for parsing the media data.
        ExtractorsFactory extractorsFactory = new DefaultExtractorsFactory();
        // This is the MediaSource representing the media to be played.
        Uri streamUri = Uri.parse(stream);
        MediaSource streamSource = new ExtractorMediaSource(streamUri, dataSourceFactory, extractorsFactory, null, null);
        // Prepare the player with the source.
        player.prepare(streamSource);
        player.setPlayWhenReady(true);
    }
 
    @Override
    protected void onDestroy() {
        super.onDestroy();
        player.release();
    }
}
0
21.12.2016, 16:12
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
21.12.2016, 16:12
Привет! Вот еще темы с ответами:

Воспроизведение музыки из интернета сразу после нажатия кнопки - Objective-C
Для воспроизведения песни в браузере использую GET запрос к сервису. Браузер, в частности гугл хром, начинает сразу её воспроизводить и...

Запись аудиопотока - Delphi
Баловался с Bass, писал плееры, онлайн радио... И вот у меня появилась идея, записать аудиопоток и сохранить его как звуковой файл на...

Граббинг аудиопотока из видеофайла - C#
Всем привет, есть такая задача. Необходимо написать программу, которая бы с видео вытягивала аудио дорожку и записывала ее в отдельный...

Извлечь метаданные из аудиопотока - PHP
Здравствуйте, Уважаемы Форумчане! Вот я наконец-то и добрался до раздела "PHP". Давно уже присматривался, но никак нужды не было. А вот...


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

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

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