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

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

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

PLAY при касании экрана и STOP когда палец убран - Android

17.01.2014, 17:08. Просмотров 871. Ответов 8
Метки нет (Все метки)

Вот код

.
.
.

@Override
public boolean onTouchEvent(MotionEvent event)
{
mpAudio = MediaPlayer.create(this, R.raw.muzik);
mpAudio.setLooping(true);
mpAudio.start();
return super.onTouchEvent(event);
}

@Override
public void onPause(){
mpAudio.stop();
super.onPause();
}
}



При нажатии на экран ( TouchEvent ) начинает проигрываться музыка и уже не останавливается. Как сделать чтобы музыка играла пока я касаюсь экрана и останавливалась когда палец от экрана убран?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
17.01.2014, 17:08     PLAY при касании экрана и STOP когда палец убран
Посмотрите здесь:

Android Ошибка при повороте экрана
Android Не получается оплатить 25$ при активации аккаунта Google Play
Android Непонятное поведение при повороте экрана
Окружность радиус которого является getEvent палец Android
Android Exception при использовании LocationClient (Google Play Services)
Android Ошибка при загрузке приложения на Google Play
Android Ошибка при переходе по ссылке из программы в Google Play (в акаунт разработчика)
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
korsaj
148 / 117 / 9
Регистрация: 16.08.2013
Сообщений: 508
17.01.2014, 17:13     PLAY при касании экрана и STOP когда палец убран #2
Выключение по OnClickListener
tree00
1 / 1 / 0
Регистрация: 13.01.2014
Сообщений: 34
17.01.2014, 17:47  [ТС]     PLAY при касании экрана и STOP когда палец убран #3
Цитата Сообщение от korsaj Посмотреть сообщение
Выключение по OnClickListener

OnClickListener обрабатывает нажатия на объекты (Button, ImfgeButton и т.д.) тут по идее должен быть OnTouchListener, но я его не подключил. Может в этом проблема? хотя приложение запускается.

Добавлено через 27 минут
Сделал, но появилась новая проблема вот код



@Override
public boolean onTouchEvent(MotionEvent event)
{
if(event.getAction() == MotionEvent.ACTION_DOWN) {
mpAudio = MediaPlayer.create(this, R.raw.muzik);
mpAudio.setLooping(true);
mpAudio.start();
}
else if (event.getAction() == MotionEvent.ACTION_UP)
{
mpAudio.stop();
}
return super.onTouchEvent(event);
}

@Override
public void onPause(){
mpAudio.stop();
super.onPause();
}
}



При выходе или переходе на другой активити музыка не прекращается.
YuraAAA
1564 / 1306 / 269
Регистрация: 25.10.2009
Сообщений: 3,424
Записей в блоге: 2
17.01.2014, 18:32     PLAY при касании экрана и STOP когда палец убран #4
tree00,

Java
1
2
3
4
5
6
7
  @Override
    protected void onPause() {
    super.onPause();
    if (mpAudio != null && mpAudio.isPlaying()) {
            mpAudio.stop();
        }
    }
tree00
1 / 1 / 0
Регистрация: 13.01.2014
Сообщений: 34
17.01.2014, 18:43  [ТС]     PLAY при касании экрана и STOP когда палец убран #5
Не помогает, все по прежнему, причем если на экран не нажимать (проигрывается дополнительная музыка), то тогда при выходе музыка прекращается, а если нажать то уже нет.
korsaj
148 / 117 / 9
Регистрация: 16.08.2013
Сообщений: 508
17.01.2014, 19:01     PLAY при касании экрана и STOP когда палец убран #6
OnClickListener - вызывается по отпусканию кнопки,
что вам похоже не подходит
tree00
1 / 1 / 0
Регистрация: 13.01.2014
Сообщений: 34
17.01.2014, 19:49  [ТС]     PLAY при касании экрана и STOP когда палец убран #7
решил проблему, для каждой музыки создал свой медиа плеер и по разному их назвал, одна закрывается при уберании пальца с экрана другая при выходе.

Добавлено через 3 минуты
а нет это не решение тогда начинает пропадать звук

Добавлено через 13 минут
вот весь код

import android.app.Activity;
import android.media.MediaPlayer;
import android.os.Bundle;
import android.graphics.drawable.AnimationDrawable;
import android.view.MotionEvent;
import android.widget.ImageView;




public class MainActivity2 extends Activity {

MediaPlayer Aud;



@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main_activity2);

Aud = MediaPlayer.create(this, R.raw.muzik1);
Aud.setLooping(true);
Aud.start();

final ImageView img=(ImageView)findViewById(R.id.image1);
img.setBackgroundResource(R.drawable.animationdemo);
img.post(new Runnable() {

@Override
public void run() {
AnimationDrawable animation=(AnimationDrawable)img.getBackground();
animation.start();

}
});



}
@Override
public boolean onTouchEvent(MotionEvent event)
{
if(event.getAction() == MotionEvent.ACTION_DOWN) {
Aud = MediaPlayer.create(this, R.raw.muzik2);
Aud.setLooping(true);
Aud.start();
}
else if (event.getAction() == MotionEvent.ACTION_UP)
{
Aud.stop();
}
return super.onTouchEvent(event);
}

@Override
public void onPause(){
Aud.stop();
super.onPause();
}
}



в чем проблема?
Севак
любитель покушать
680 / 631 / 106
Регистрация: 25.09.2011
Сообщений: 1,313
17.01.2014, 19:55     PLAY при касании экрана и STOP когда палец убран #8
tree00,
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
package com.sevak_avet.test;
 
import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
import android.view.MotionEvent;
import android.view.TextureView;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.View.OnTouchListener;
import android.widget.TextView;
 
public class MainActivity extends Activity {
 
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        
        TextView tv = (TextView) findViewById(R.id.tv);
        tv.setOnTouchListener(new OnTouchListener() {
            @Override
            public boolean onTouch(View v, MotionEvent event) {
                if (event.getActionMasked() == MotionEvent.ACTION_DOWN) {
                    System.out.println("START");
                }
                
                if(event.getActionMasked() == MotionEvent.ACTION_UP) {
                    System.out.println("STOP");
                }
                
                return true;
            }
        });
    }
}
Добавлено через 1 минуту
Цитата Сообщение от tree00 Посмотреть сообщение
Java
1
2
3
4
5
6
7
8
9
if(event.getAction() == MotionEvent.ACTION_DOWN) {
Aud = MediaPlayer.create(this, R.raw.muzik2);
Aud.setLooping(true); 
Aud.start(); 
}
else if (event.getAction() == MotionEvent.ACTION_UP)
{
Aud.stop(); 
}
попробуй сделать второй if без else
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
17.01.2014, 20:43     PLAY при касании экрана и STOP когда палец убран
Еще ссылки по теме:

Ошибка при публикации приложения в Play Market Android
Как узнать когда пользователь перестает касаться экрана? Android
Android OnTouchListener и толстый дрожащий палец :)
Android Таймер останавливается при блокировке экрана
Как сделать, чтобы при обновлении приложения в Google Play сохранялись пользовательские настройки и данные Android

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

Или воспользуйтесь поиском по форуму:
tree00
1 / 1 / 0
Регистрация: 13.01.2014
Сообщений: 34
17.01.2014, 20:43  [ТС]     PLAY при касании экрана и STOP когда палец убран #9
в общем сделал так: для каждого аудио файла создал свой MediaPlayer,

MediaPlayer Aud1;
MediaPlayer Aud2;


затем в этой части


if(event.getAction() == MotionEvent.ACTION_DOWN) {
mpAudio = MediaPlayer.create(this, R.raw.muzik);
mpAudio.setLooping(true);
mpAudio.start();
}
else if (event.getAction() == MotionEvent.ACTION_UP)
{
mpAudio.stop();
}
return super.onTouchEvent(event);
}




вместо mpAudio.stop(); поставил mpAudio.reset(); (иначе при многократных нажатиях на экран происходила какая-то ошибка и проигрывание прекращалось).

Теперь вроде все работает. Всем спасибо.
Yandex
Объявления
17.01.2014, 20:43     PLAY при касании экрана и STOP когда палец убран
Ответ Создать тему
Опции темы

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