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

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

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

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

19.11.2016, 17:13. Просмотров 244. Ответов 7
Метки нет (Все метки)

Создал плеер, где в 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>
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
19.11.2016, 17:13     Код не воспроизводит музыку из файла
Посмотрите здесь:

Не воспроизводит звук - Программирование Android
Помогите пожалуйста настроить воспроизведение звука через 2 кнопки. Музыка включается при нажатие на кнопку включения звука &quot;Button1&quot; ,...

SoundPool не везде воспроизводит - Программирование Android
Сначала назначил звук, на звуки кнопок: public class RetrogameActivityActivity extends Activity implements OnClickListener { ...

SoundPool - не воспроизводит до конца звук - Программирование Android
SoundPool - не воспроизводит до конца звук. По середине или в конце обрывается. У всех по разному. У меня 15 звуковых mp3 файлов. до 30...

Android 4.4 MediaPlayer не воспроизводит звук - Программирование Android
Добрый день :senor: MediaPlayer на android 4.1.1, 4.2.2, 5.1 работает, на 4.4.4 не работает вот код mediaPlayer =...

Добавить в приложение фоновую музыку - Программирование Android
Есть приложение интентами и фрагменатами. Хочу чтобы играла музыка в приложении. Как обычно такое делают? Добавлено через 4 минуты И...

Листать музыку Через WIFI - Программирование Android
Смысл таков Есть HTML страничка с каким нить содержанием, допустим пока что просто 0. На ней я могу менять это значение допустим 1 =...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
OlegJV
102 / 102 / 29
Регистрация: 13.03.2016
Сообщений: 471
20.11.2016, 07:35     Код не воспроизводит музыку из файла #2
А зачем кнопкам дважды назначать OnClickListener - один раз в xml, потом второй раз в коде? Повторение - мать заикания?

Добавлено через 1 минуту
Цитата Сообщение от zca775 Посмотреть сообщение
Написано вроде бы правильно
Какие мы оптимисты)))
vxg
Модератор
3143 / 1945 / 214
Регистрация: 13.01.2012
Сообщений: 7,437
20.11.2016, 10:41     Код не воспроизводит музыку из файла #3
OlegJV, по существу про оптимизм поведайте если не сложно
OlegJV
102 / 102 / 29
Регистрация: 13.03.2016
Сообщений: 471
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);

Зачем?

Считать это правильным - не оптимизм ли?
Pablito
2455 / 1900 / 591
Регистрация: 12.05.2014
Сообщений: 6,702
Завершенные тесты: 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
Модератор
3143 / 1945 / 214
Регистрация: 13.01.2012
Сообщений: 7,437
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     Код не воспроизводит музыку из файла
Еще ссылки по теме:

Где вы берете фоновую музыку для своих приложений? - Программирование Android
Вот и суть, подкиньте сайтики, надеюсь в том разделе.

Создание файла, запись в файл - не работает код - Программирование Android
Нужна помощь, бьюсь уже несколько дней, думал осилю, но ничего не получается. Существует куча примеров по созданию файлов, папок, записи в...

jPlayer не воспроизводит музыку - jQuery
&lt;!DOCTYPE html PUBLIC '-//W3C//DTD XHTML 1.0 Transitional//EN' 'http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd'&gt; &lt;html...

Проигрыватель не воспроизводит музыку. - Ноутбуки
Я закрыла клавишу громкости и ещё что-то. Теперь звука нет, я даже не слышу,как аська врубается((( Песни не воспроизводятся, пишет о...


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

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

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