Odtwórz plik audio z katalogu zasobów
Mam następujący kod:
AssetFileDescriptor afd = getAssets().openFd("AudioFile.mp3");
player = new MediaPlayer();
player.setDataSource(afd.getFileDescriptor());
player.prepare();
player.start();
Problem polega na tym, że gdy uruchamiam ten kod, zaczyna on odtwarzać wszystkie pliki audio w katalogu assets, w porządku alfabetycznym, zamiast tylko odtwarzać żądany plik audio. Co robię źle? Czy istnieje lepszy sposób odtwarzania plików audio z katalogu zasobów?
Pytanie uzupełniające: Czy istnieje różnica między przechowywaniem plików audio w katalogu assets a przechowywaniem ich w katalogu res/raw? Poza faktem że nie dostają identyfikatorów, jeśli są w katalogu zasobów. Jeśli przenoszę pliki audio do folderu res / raw, to mam problem z ponownym użyciemMediaPlayer
s, ponieważ nie ma parametru id dla setDataSource()
. Nie mogę znaleźć dobrej wskazówki do radzenia sobie z tego rodzaju problemem. 105
Author: Jared Burrows, 2010-07-20
3 answers
player.setDataSource(afd.getFileDescriptor(),afd.getStartOffset(),afd.getLength());
Twoja wersja będzie działać, jeśli masz tylko jeden plik w zasobach katalog. Zawartość katalogu zasobów nie jest w rzeczywistości "prawdziwymi plikami" na dysku. Wszystkie są zestawiane jeden po drugim. Więc, jeśli tak nie określa od czego zacząć i ile bajtów do odczytania, gracz będzie odczytać do końca (czyli będzie odtwarzać wszystkie pliki w zasobach katalog)
217
Author: Sarwar Erfan,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-01-18 19:05:00
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-01-18 19:05:00
Ta funkcja będzie działać poprawnie:)
// MediaPlayer m; /*assume, somewhere in the global scope...*/
public void playBeep() {
try {
if (m.isPlaying()) {
m.stop();
m.release();
m = new MediaPlayer();
}
AssetFileDescriptor descriptor = getAssets().openFd("beepbeep.mp3");
m.setDataSource(descriptor.getFileDescriptor(), descriptor.getStartOffset(), descriptor.getLength());
descriptor.close();
m.prepare();
m.setVolume(1f, 1f);
m.setLooping(true);
m.start();
} catch (Exception e) {
e.printStackTrace();
}
}
62
Author: Siddhpura Amit,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-09-17 21:34:55
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-09-17 21:34:55
Fix powyższej funkcji dla odtwarzania i pauzy
public void playBeep ( String word )
{
try
{
if ( ( m == null ) )
{
m = new MediaPlayer ();
}
else if( m != null&&lastPlayed.equalsIgnoreCase (word)){
m.stop();
m.release ();
m=null;
lastPlayed="";
return;
}else if(m != null){
m.release ();
m = new MediaPlayer ();
}
lastPlayed=word;
AssetFileDescriptor descriptor = context.getAssets ().openFd ( "rings/" + word + ".mp3" );
long start = descriptor.getStartOffset ();
long end = descriptor.getLength ();
// get title
// songTitle=songsList.get(songIndex).get("songTitle");
// set the data source
try
{
m.setDataSource ( descriptor.getFileDescriptor (), start, end );
}
catch ( Exception e )
{
Log.e ( "MUSIC SERVICE", "Error setting data source", e );
}
m.prepare ();
m.setVolume ( 1f, 1f );
// m.setLooping(true);
m.start ();
}
catch ( Exception e )
{
e.printStackTrace ();
}
}
0
Author: Hadid Graphics,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-08-15 22:00:43
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-08-15 22:00:43