Я пытаюсь воспроизвести аудио из этого потока (обратите внимание, что это НЕ ФАЙЛ) https://listen.radioaktywne.pl:8443/ramp3, к сожалению, безуспешно.При копировании этой ссылки в мой веб-браузер она обычно воспроизводит онлайн-радио.
Я пробовал связываться с setAudioStreamType()
и AudioAttributes
, но, похоже, ничего из вышеперечисленного не работает.Кроме того, когда я пытаюсь URL-адрес простого mp3-файла, все работает нормально.Любые предложения?
Это весь файл MainActivity.java
, ключевая часть которого, на мой взгляд, просто initializeMediaPlayer()
.
import android.content.Intent;
import android.media.MediaPlayer;
import android.net.Uri;
import android.os.Bundle;
import android.support.design.widget.FloatingActionButton;
import android.support.design.widget.Snackbar;
import android.support.v7.app.AppCompatActivity;
import android.support.v7.widget.Toolbar;
import android.util.Log;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import java.io.IOException;
public class MainActivity extends AppCompatActivity {
// The audio url to play
String audioUrl = "https://listen.radioaktywne.pl:8443/ramp3";
private FloatingActionButton fab;
private boolean playing=false;
private MediaPlayer mediaPlayer;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Toolbar toolbar = findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
initializeMediaPlayer();
fab = findViewById(R.id.fab);
fab.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Snackbar.make(view, R.string.now_listening, Snackbar.LENGTH_LONG).show();
if (!playing) {
startPlaying();
} else {
stopPlaying();
}
}
});
}
private void stopPlaying() {
if (mediaPlayer.isPlaying()) {
mediaPlayer.stop();
mediaPlayer.release();
initializeMediaPlayer();
playing=false;
}
}
private void startPlaying() {
mediaPlayer.prepareAsync();
playing =true;
mediaPlayer.setOnPreparedListener(new MediaPlayer.OnPreparedListener() {
public void onPrepared(MediaPlayer mp) {
mediaPlayer.start();
}
});
}
/**
* Take a look here!
*/
private void initializeMediaPlayer() {
mediaPlayer = new MediaPlayer();
// mediaPlayer.setAudioStreamType(AudioManager.STREAM_MUSIC);
// AudioAttributes audioAttributes = new AudioAttributes.Builder()
// .setUsage(AudioAttributes.USAGE_MEDIA)
// .setContentType(AudioAttributes.CONTENT_TYPE_MUSIC)
// .build();
//
// mediaPlayer.setAudioAttributes(audioAttributes);
try {
mediaPlayer.setDataSource(audioUrl);
} catch (IllegalArgumentException e) {
e.printStackTrace();
} catch (IllegalStateException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
}