Форум программистов, компьютерный форум, киберфорум
Наши страницы
Программирование Android
Войти
Регистрация
Восстановить пароль
 
zca775
0 / 0 / 0
Регистрация: 11.12.2015
Сообщений: 12
#1

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

19.11.2016, 17:13. Просмотров 278. Ответов 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>
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
19.11.2016, 17:13
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Код не воспроизводит музыку из файла (Программирование Android):

jPlayer не воспроизводит музыку
&lt;!DOCTYPE html PUBLIC '-//W3C//DTD XHTML 1.0 Transitional//EN'...

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

Awesomium не воспроизводит музыку и видео в вк
Решил создать свой браузер, и для этого скачал и установил awesomium, и все...

Ноутбук не воспроизводит музыку что делать?
Уже измаялась вся, что еще придумать не знаю: в правом нижнем углу громкость...

Флэш Плэер не воспроизводит музыку в браузере
Скажите пожалуйства уже не знаю где инфу черпать. Вообщем вчера я заметил,...

Google chrom не воспроизводит музыку на моем сайте
Здравствуйте! Столкнулась с такой проблемой, делаю сайт и там есть музыка, так...

7
OlegJV
103 / 103 / 28
Регистрация: 13.03.2016
Сообщений: 474
20.11.2016, 07:35 #2
А зачем кнопкам дважды назначать OnClickListener - один раз в xml, потом второй раз в коде? Повторение - мать заикания?

Добавлено через 1 минуту
Цитата Сообщение от zca775 Посмотреть сообщение
Написано вроде бы правильно
Какие мы оптимисты)))
0
vxg
Модератор
3231 / 2035 / 319
Регистрация: 13.01.2012
Сообщений: 7,887
20.11.2016, 10:41 #3
OlegJV, по существу про оптимизм поведайте если не сложно
0
OlegJV
103 / 103 / 28
Регистрация: 13.03.2016
Сообщений: 474
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);

Зачем?

Считать это правильным - не оптимизм ли?
1
Pablito
2655 / 2137 / 726
Регистрация: 12.05.2014
Сообщений: 7,450
Завершенные тесты: 1
20.11.2016, 11:29 #5
очевидно же что ТС не писал этот код - он выдернут кусками с какого-то блога
0
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);
Имеет значение кем и когда написан код?
очевидно же что ТС не писал этот код - он выдернут кусками с какого-то блога
0
vxg
Модератор
3231 / 2035 / 319
Регистрация: 13.01.2012
Сообщений: 7,887
20.11.2016, 12:51 #7
zca775, зачем создавать плеер в PrefActivity если мы будем играть музыку в MainActivity? посмотрите в отладке что прилетает в MainActivity при возврате из PrefActivity

Добавлено через 3 минуты
...хотя вы это не используете... вы зачем-то ищите возвращаемые данные в экстре только что созданного интента... странно это...
0
_Night_Scream_
77 / 75 / 9
Регистрация: 08.08.2013
Сообщений: 623
20.11.2016, 13:46 #8
Код не читал, лень, скажу только что я был удивлён когда мои аудио файлы одни версии воспроизводили, а другие нет.
Для одной версии wav, для другой mp3.
Не скажу что тут проблема в этом, просто поделился мыслями.
0
20.11.2016, 13:46
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
20.11.2016, 13:46
Привет! Вот еще темы с решениями:

google chrome не воспроизводит музыку в любых флэш плэерах
Скажите пожалуйства уже не знаю где инфу черпать. Вообщем вчера я заметил,...

Как проиграть музыку из файла?
Я использую свои модули, поэтому не удивляйтесь некоторым странным процедурам....

Вставить в код Будильника музыку, чтоб музыка загружалась с компьютера
Здравствуйте!!! помогите пожалуйста вставить в код Будильника музыку чтоб была...

Составьте программу, которая воспроизводит на экране бегущий текст, считываемый из файла
Составьте программу, которая воспроизводит на экране бегущий текст, считываемый...


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

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

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