Форум программистов, компьютерный форум CyberForum.ru

Код не воспроизводит музыку из файла - Android

Восстановить пароль Регистрация
 
zca775
0 / 0 / 0
Регистрация: 11.12.2015
Сообщений: 12
19.11.2016, 17:13     Код не воспроизводит музыку из файла #1
Создал плеер, где в preferences выбираю музыку с файла, после чего нужно её передать в главное активити, где она будет играть при нажатии клавиши. Написано вроде бы правильно, но не работает. Помогите найти ошибку, или дайте, пожалуйста какой-то пример.

PrefActivity
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
public class PrefActivity extends PreferenceActivity implements TimePickerDialog.OnTimeSetListener {
 
    final static int CHOOSE_AUDIO_MP3 = 1;
 
    Uri audioFileUri;
    MediaPlayer mediaPlayer;
    
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        addPreferencesFromResource(R.xml.pref);
 
        Preference get_melody = (Preference) findPreference("melody");
 
        get_melody.setOnPreferenceClickListener(new Preference.OnPreferenceClickListener() {
            @Override
            public boolean onPreferenceClick(Preference preference) {
 
                Intent intent = new Intent();
                intent.setType("audio/mp3");
                intent.setAction(Intent.ACTION_GET_CONTENT);
                startActivityForResult(
                        Intent.createChooser(intent, "Выбрать MP3-файл"),
                        CHOOSE_AUDIO_MP3);
                return false;
            }
        });
    }
 
    @Override
    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
        // TODO Auto-generated method stub
        if (resultCode == RESULT_OK) {
            if (requestCode == CHOOSE_AUDIO_MP3) {
                audioFileUri = data.getData();
                mediaPlayer = MediaPlayer.create(this, audioFileUri);
 
                Intent melodyIntent = new Intent(this, MainActivity.class);
                melodyIntent.putExtra("melody", audioFileUri);
 
            }
        }
    }
MainActivity
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
public class MainActivity extends AppCompatActivity implements View.OnClickListener {
    
   Button get_start;
   Uri uri;
   MediaPlayer mediaPlayer;
 
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
 
        get_start = (Button) findViewById(R.id.start);
        get_start.setOnClickListener(this);
    }
 
   @Override
    public void onClick(View view) {
 
        switch(view.getId()) {
            case R.id.start:
                if (!mediaPlayer.isPlaying()) {
                    mediaPlayer.start();                  
                }
                break;
             case R.id.nScreen:
                Intent intent = new Intent (this, PrefActivity.class);
                startActivity(intent);
                break;
            default:
                break;
        }
    }
 
   public void onResume() {
 
        mediaPlayer = new MediaPlayer();
        Intent gMusicIntent = getIntent();
        uri = Uri.parse(gMusicIntent.getStringExtra("melody"));
        mediaPlayer = MediaPlayer.create(this, urri);
 
        super.onResume();
    }
pref.xml
Java
1
2
3
4
5
6
7
8
9
<?xml version="1.0" encoding="utf-8"?>
<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android">
 
    <Preference
        android:key="melody"
        android:summary="Нажмите чтоб выбрать мелодию"
        android:title="Мои мелодии">
    </Preference>
</PreferenceScreen>
activity_main.xml
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical" android:layout_width="match_parent"
    android:layout_height="match_parent">
 
     <Button
        android:id="@+id/nScreen"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:onClick="onClick"
        android:text="Новый экран" />
 
    <Button
        android:id="@+id/start"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:onClick="onClick"
        android:text="Начать" />
</LinearLayout>
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
OlegJV
 Аватар для OlegJV
98 / 98 / 29
Регистрация: 13.03.2016
Сообщений: 446
20.11.2016, 07:35     Код не воспроизводит музыку из файла #2
А зачем кнопкам дважды назначать OnClickListener - один раз в xml, потом второй раз в коде? Повторение - мать заикания?

Добавлено через 1 минуту
Цитата Сообщение от zca775 Посмотреть сообщение
Написано вроде бы правильно
Какие мы оптимисты)))
vxg
Модератор
 Аватар для vxg
2662 / 1673 / 157
Регистрация: 13.01.2012
Сообщений: 6,230
20.11.2016, 10:41     Код не воспроизводит музыку из файла #3
OlegJV, по существу про оптимизм поведайте если не сложно
OlegJV
 Аватар для OlegJV
98 / 98 / 29
Регистрация: 13.03.2016
Сообщений: 446
20.11.2016, 11:20     Код не воспроизводит музыку из файла #4
uri = Uri.parse(gMusicIntent.getStringExtra("melody"));
mediaPlayer = MediaPlayer.create(this, urri);
???

Java
1
2
3
4
5
6
7
8
9
10
11
12
13
@Override
    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
        // TODO Auto-generated method stub
        if (resultCode == RESULT_OK) {
            if (requestCode == CHOOSE_AUDIO_MP3) {
                audioFileUri = data.getData();
                mediaPlayer = MediaPlayer.create(this, audioFileUri);
 
                Intent melodyIntent = new Intent(this, MainActivity.class);
                melodyIntent.putExtra("melody", audioFileUri);
 
            }
        }
mediaPlayer = MediaPlayer.create(this, audioFileUri);

Зачем?

Считать это правильным - не оптимизм ли?
Паблито
не спать!
1788 / 1522 / 474
Регистрация: 12.05.2014
Сообщений: 5,559
Завершенные тесты: 1
20.11.2016, 11:29     Код не воспроизводит музыку из файла #5
очевидно же что ТС не писал этот код - он выдернут кусками с какого-то блога
zca775
0 / 0 / 0
Регистрация: 11.12.2015
Сообщений: 12
20.11.2016, 12:38  [ТС]     Код не воспроизводит музыку из файла #6
Цитата Сообщение от OlegJV Посмотреть сообщение
uri = Uri.parse(gMusicIntent.getStringExtra("melody"));
mediaPlayer = MediaPlayer.create(this, urri);
???
забыл удалить, это всё равно ни на что не влияет.
Java
1
mediaPlayer = MediaPlayer.create(this, urri);
Имеет значение кем и когда написан код?
очевидно же что ТС не писал этот код - он выдернут кусками с какого-то блога
vxg
Модератор
 Аватар для vxg
2662 / 1673 / 157
Регистрация: 13.01.2012
Сообщений: 6,230
20.11.2016, 12:51     Код не воспроизводит музыку из файла #7
zca775, зачем создавать плеер в PrefActivity если мы будем играть музыку в MainActivity? посмотрите в отладке что прилетает в MainActivity при возврате из PrefActivity

Добавлено через 3 минуты
...хотя вы это не используете... вы зачем-то ищите возвращаемые данные в экстре только что созданного интента... странно это...
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
20.11.2016, 13:46     Код не воспроизводит музыку из файла
Еще ссылки по теме:

Получение хеша бинарного файла сборки для выполняемого apk-файла Android
Android Android 4.4 MediaPlayer не воспроизводит звук
Android Не воспроизводит звук

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

Или воспользуйтесь поиском по форуму:
_Night_Scream_
50 / 50 / 6
Регистрация: 08.08.2013
Сообщений: 483
20.11.2016, 13:46     Код не воспроизводит музыку из файла #8
Код не читал, лень, скажу только что я был удивлён когда мои аудио файлы одни версии воспроизводили, а другие нет.
Для одной версии wav, для другой mp3.
Не скажу что тут проблема в этом, просто поделился мыслями.
Yandex
Объявления
20.11.2016, 13:46     Код не воспроизводит музыку из файла
Ответ Создать тему
Опции темы

Текущее время: 20:40. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru