Форум программистов, компьютерный форум, киберфорум
Наши страницы
Программирование Android
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.60/5: Рейтинг темы: голосов - 5, средняя оценка - 4.60
Yushka
4 / 4 / 0
Регистрация: 24.07.2013
Сообщений: 80
1

Борьба с фоновой музыкой

30.07.2013, 18:56. Просмотров 886. Ответов 4
Метки нет (Все метки)

Моя задача - добавить в игру фоновую музыку.
Пробовала Фоновая музыка в приложении так и http://stackoverflow.com/questions/1...-in-background так (то, что в ответах). В первом случае - не играет. Во втором долго пробовала, но:
1)либо лажа с наложением музыки
2)либо не перестаёт играть при выходе из игры
3)либо приложение выкидывает при нажатии в не первой активити на "назад", плюс не нравится среде нулевой аргумент в строке
Java
1
 mBackgroundSound.execute(null);
Помогите разобраться по-человечески, как же всё-таки должна вписываться музыка в приложение. Заранее спасибо!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
30.07.2013, 18:56
Ответы с готовыми решениями:

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

Работа с файлами, музыкой
Нужно реализовать извлечение музыки из памяти телефона в приложение и чтобы они...

File browser для выбора каталога с музыкой
Хочу добавить в свой MediaPlayer возможность выбрать каталог и с него...

Событие выхода и фоновой работы
Люди не подскажите как отследить событие "выход" и "фон"?

Повторение фоновой картинки с указанием размера
Данный ImageView <ImageView android:layout_width="match_parent" ...

4
name?
199 / 170 / 52
Регистрация: 01.06.2010
Сообщений: 371
Завершенные тесты: 1
30.07.2013, 19:18 2
1)я использовал MediaPlayer и не замечал лаж с наложением
2)есть метод stop()
0
Yushka
4 / 4 / 0
Регистрация: 24.07.2013
Сообщений: 80
31.07.2013, 10:02  [ТС] 3
Можно попросить Вас поподробнее рассказать, если Вам не сложно? Плюс есть желание реализовать это в отдельном классе, чтобы обращаться из всех активити (шикарно, если Вы так и имели в виду).
0
name?
199 / 170 / 52
Регистрация: 01.06.2010
Сообщений: 371
Завершенные тесты: 1
31.07.2013, 13:48 4
я делал так:


Кликните здесь для просмотра всего текста

в Sound храниться вся инфа о нашей музыке ну и проигрывает ее
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
public class Sound {
 
    private MediaPlayer mediaPlayer;
    private Context context;
    private HashMap<Wave, Integer> sounds = new HashMap<Wave, Integer>();
 
    public Sound(Context context) {
        this.context = context;
        sounds.put(Wave.eatFruit, R.raw.eatfruit);
        sounds.put(Wave.menuSound, R.raw.pacman_song2);
        sounds.put(Wave.chomp, R.raw.pacman_coinin);
        sounds.put(Wave.beginning, R.raw.beginning);
        sounds.put(Wave.death, R.raw.death);
        sounds.put(Wave.eatSpirit, R.raw.eatspirit);
        sounds.put(Wave.sirenSound, R.raw.sirensound);
    }
 
    @SuppressWarnings("static-access")
    public void play(Wave wave, boolean looping, boolean isSound) {
        if (isSound) {
            mediaPlayer = mediaPlayer.create(context, sounds.get(wave));
            mediaPlayer.setLooping(looping);
            mediaPlayer.start();
        }
    }
 
    public void stop() {
        if (mediaPlayer != null) {
            mediaPlayer.setLooping(false);
            mediaPlayer.stop();
        }
    }
 
}
и контроллер


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
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
public class SoundController {
 
 
    private Sound sound;
    private Sound backgroundSound;
    private Sound menu;
    private boolean isSound;
    private Context context;
    
 
   
    public SoundController(Context context , boolean isSound) {
        this.context = context;
        this.isSound = isSound;
        sound = new Sound(context);
    }
    
    public void playBackground(){
        if(backgroundSound == null){
            backgroundSound = new Sound(context);
            backgroundSound.play(Wave.sirenSound, true, true);
        }
    }
        
    private void eatPoint(World world){
        if(world.eatPoint()){
            sound.play(Wave.chomp, false, isSound); 
        }
    }
    
    private void eatBonus(World world) {
        if (world.eatBonus()) {
            sound.play(Wave.eatFruit, false, isSound);
        }
    }
    
    private void collisionNPC(World world) {
        if (world.deadPlayer()) {
            sound.play(Wave.death, false, isSound);
        }
        if (world.deadSpirit()) {
            sound.play(Wave.eatSpirit, false, isSound);
        }
    }
 
    public void play(World world){
        eatPoint(world);
        eatBonus(world);
        collisionNPC(world);
    }
    
    public void stop() {
        if (backgroundSound != null) {
            backgroundSound.stop();
            backgroundSound = null;
        }
        if (sound != null) {
            sound.stop();
        }
        if (menu != null){
            menu.stop();
            menu = null;
            }
    }
    
    public void playMenu(){
        if(menu == null){
        menu = new Sound(context);
        menu.play(Wave.menuSound, true, isSound);
        }
    }
    
    public void setSound(boolean isSound){
        this.isSound = isSound;
    }
    
    public boolean getSound(){
        return isSound;
    }
}

в первом контроллере создавал SoundController и далее передавал его всем нужным классам, при смене екрана просто вызывал метод stop в контролере который останавливал все звуковые потоки
1
Yushka
4 / 4 / 0
Регистрация: 24.07.2013
Сообщений: 80
31.07.2013, 13:52  [ТС] 5
Спасибо, будем пробовать)
0
31.07.2013, 13:52
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
31.07.2013, 13:52

Борьба с халявщиками
Кто как борется с возвратами платежей в гугл плей? Человек может купить...

Написание сервиса для фоновой музыки в приложении под Android(Java)
Товарищи, в данный момент столкнулся с одной из многих проблем на моём...

Какой сервис нужен для фоновой работы (при выключенном приложении)?
Здравствуйте! Подскажите, какими средствами стоит реализовывать следующее: ...


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

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

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