powered by simpleCommunicator - 2.0.40     © 2025 Programmizd 02
Форумы / Android [игнор отключен] [закрыт для гостей] / onTouch со звуком
25 сообщений из 50, страница 2 из 2
onTouch со звуком
    #39270681
ilja2210
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
извините, не секу, как ставить нужный тег((


Код: 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.
81.
82.
83.
84.
85.
86.
87.
package com.example.drums.magicdrums;

import android.app.Activity;
import android.media.AudioManager;
import android.media.SoundPool;
import android.media.SoundPool.OnLoadCompleteListener;
import android.os.Bundle;
import android.util.Log;
import android.view.MotionEvent;
import android.view.View;
import android.view.View.OnTouchListener;

public class Main2Activity extends Activity implements OnTouchListener {
    private SoundPool soundPool;
    private int soundID;
    boolean loaded = false;

    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main2);

        View view = findViewById(R.id.button);
        View view2 = findViewById(R.id.button2);
        View view3 = findViewById(R.id.button3);
        View view5 = findViewById(R.id.button5);
        View view6 = findViewById(R.id.button6);
        View view7 = findViewById(R.id.button7);
        View view8 = findViewById(R.id.button8);
        View view9 = findViewById(R.id.button9);
        View view10 = findViewById(R.id.button10);
        View view11 = findViewById(R.id.button11);

        view.setOnTouchListener(this);
        view2.setOnTouchListener(this);
        view3.setOnTouchListener(this);
        view5.setOnTouchListener(this);
        view6.setOnTouchListener(this);
        view7.setOnTouchListener(this);
        view8.setOnTouchListener(this);
        view9.setOnTouchListener(this);
        view10.setOnTouchListener(this);
        view11.setOnTouchListener(this);

// Set the hardware buttons to control the music
        this.setVolumeControlStream(AudioManager.STREAM_MUSIC);
// Load the sound
        soundPool = new SoundPool(10, AudioManager.STREAM_MUSIC, 0);
        soundPool.setOnLoadCompleteListener(new OnLoadCompleteListener() {
            @Override
            public void onLoadComplete(SoundPool soundPool, int sampleId,
                                       int status) {
                loaded = true;
            }
        });
        soundID = soundPool.load(this, R.raw.button, 1);
        


    }

    @Override
    public boolean onTouch(View v, MotionEvent event) {
        if (event.getAction() == MotionEvent.ACTION_DOWN) {
// Getting the user sound settings
            AudioManager audioManager = (AudioManager) getSystemService(AUDIO_SERVICE);
            float actualVolume = (float) audioManager
                    .getStreamVolume(AudioManager.STREAM_MUSIC);
            float maxVolume = (float) audioManager
                    .getStreamMaxVolume(AudioManager.STREAM_MUSIC);
            float volume = actualVolume / maxVolume;
// Is the sound loaded already?
            if (loaded) {
                soundPool.play(soundID, volume, volume, 1, 0, 1f);
                Log.e("Test", "Played sound");
            }

        }
        if (event.getAction() == MotionEvent.ACTION_UP) {

        }


        return true;
    }
}



Код: xml
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.
81.
82.
83.
84.
85.
86.
87.
88.
89.
90.
91.
92.
93.
94.
95.
96.
97.
98.
99.
100.
101.
102.
103.
104.
105.
106.
107.
108.
109.
110.
111.
112.
113.
114.
115.
116.
117.
118.
119.
120.
121.
122.
123.
124.
125.
126.
127.
128.
129.
130.
131.
132.
133.
134.
135.
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    tools:context="com.example.drums.magicdrums.Main2Activity"
    android:background="@color/accent_material_dark">

    <Button
        style="?android:attr/borderlessButtonStyle"

        android:layout_width="150dp"
        android:layout_height="150dp"
        android:id="@+id/button"
        android:background="@drawable/ccc"
        android:layout_alignParentTop="true"
        android:layout_alignParentLeft="true"
        android:layout_alignParentStart="true"
        android:clickable="true"/>

    <Button
        style="?android:attr/borderlessButtonStyle"

        android:layout_width="150dp"
        android:layout_height="150dp"
        android:id="@+id/button2"
        android:background="@drawable/ccc"
        android:layout_alignTop="@+id/button"
        android:layout_alignParentRight="true"
        android:layout_alignParentEnd="true"
        android:clickable="true"/>

    <Button
        style="?android:attr/borderlessButtonStyle"

        android:layout_width="120dp"
        android:layout_height="120dp"
        android:id="@+id/button3"
        android:background="@drawable/ccc"
        android:layout_alignParentTop="true"
        android:layout_centerHorizontal="true"
        android:clickable="true"/>

    <Button
        style="?android:attr/borderlessButtonStyle"

        android:onClick="playSoundButton6"
        android:layout_width="135dp"
        android:layout_height="135dp"
        android:id="@+id/button6"
        android:background="@drawable/zzz"
        android:layout_alignParentBottom="true"
        android:layout_centerHorizontal="true"
        android:clickable="true"/>

    <Button
        style="?android:attr/borderlessButtonStyle"

        android:layout_width="135dp"
        android:layout_height="135dp"
        android:id="@+id/button5"
        android:background="@drawable/zzz"
        android:layout_centerVertical="true"
        android:layout_alignRight="@+id/button3"
        android:layout_alignEnd="@+id/button3"
        android:layout_marginRight="93dp"
        android:layout_marginEnd="93dp"
        android:clickable="true"/>

    <Button
        style="?android:attr/borderlessButtonStyle"

        android:layout_width="135dp"
        android:layout_height="135dp"
        android:id="@+id/button7"
        android:background="@drawable/zzz"
        android:layout_alignTop="@+id/button5"
        android:layout_alignLeft="@+id/button3"
        android:layout_alignStart="@+id/button3"
        android:layout_marginLeft="97dp"
        android:layout_marginStart="97dp"
        android:clickable="true"/>

    <Button
        style="?android:attr/borderlessButtonStyle"

        android:layout_width="90dp"
        android:layout_height="90dp"
        android:id="@+id/button8"
        android:background="@drawable/xxx"
        android:layout_alignParentBottom="true"
        android:layout_alignParentLeft="true"
        android:layout_alignParentStart="true"
        android:clickable="true"/>

    <Button
        style="?android:attr/borderlessButtonStyle"

        android:layout_width="90dp"
        android:layout_height="90dp"
        android:id="@+id/button9"
        android:background="@drawable/xxx"
        android:layout_alignParentBottom="true"
        android:layout_alignParentRight="true"
        android:layout_alignParentEnd="true"
        android:clickable="true"/>

    <Button
        style="?android:attr/borderlessButtonStyle"

        android:layout_width="90dp"
        android:layout_height="90dp"
        android:id="@+id/button10"
        android:background="@drawable/xxx"
        android:layout_alignParentBottom="true"
        android:layout_toRightOf="@+id/button8"
        android:layout_toEndOf="@+id/button8"
        android:clickable="true"/>

    <Button
        style="?android:attr/borderlessButtonStyle"

        android:layout_width="90dp"
        android:layout_height="90dp"
        android:id="@+id/button11"
        android:background="@drawable/xxx"
        android:layout_alignBottom="@+id/button9"
        android:layout_toLeftOf="@+id/button9"
        android:layout_toStartOf="@+id/button9"
        android:clickable="true"/>
</RelativeLayout>



кажется, нужно чет со строкой
Код: java
1.
        soundID = soundPool.load(this, R.raw.button, 1);

чет делать (клонировать), че делать?
...
Рейтинг: 0 / 0
onTouch со звуком
    #39270909
Фотография Джибс
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а в чем собственно вопрос ?
...
Рейтинг: 0 / 0
onTouch со звуком
    #39270912
ilja2210
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Джибс,

какие строки нужно добавить, чтобы при нажатии на кнопки button2,3,5,6,7,8,9,10,11 тоже работали звуки (названия звуков соответствуют id кнопки).
Сейчас при нажатии на любую кнопку играет звук button. Так не должно быть. Что делать?
...
Рейтинг: 0 / 0
onTouch со звуком
    #39271454
Фотография A Serious Man
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а почему нельзя проигрывать по клику, а не тач?
...
Рейтинг: 0 / 0
onTouch со звуком
    #39271455
ilja2210
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
A Serious Man,

так надо)
...
Рейтинг: 0 / 0
onTouch со звуком
    #39271458
Фотография A Serious Man
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ilja2210A Serious Man,

так надо)
наверно в этом и проблема.
...
Рейтинг: 0 / 0
onTouch со звуком
    #39271462
Фотография A Serious Man
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
тут все разжевано хорошим человеком с украины и работает. сам лично использовал в своем проекте.
http://startandroid.ru/ru/uroki/vse-uroki-spiskom/239-urok-127-media-soundpool.html
...
Рейтинг: 0 / 0
onTouch со звуком
    #39271520
Фотография Джибс
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
A Serious Manilja2210A Serious Man,

так надо)
наверно в этом и проблема.

вообще то не в этом, проблема у него в самых азах.
...
Рейтинг: 0 / 0
onTouch со звуком
    #39271592
ilja2210
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Джибс,

да норм там с азами)
Код: 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.
81.
82.
83.
84.
85.
86.
87.
88.
89.
90.
91.
92.
93.
94.
95.
96.
97.
98.
99.
100.
101.
102.
103.
104.
105.
106.
107.
108.
109.
110.
111.
112.
113.
114.
115.
116.
117.
118.
119.
120.
121.
122.
123.
124.
125.
126.
127.
128.
129.
130.
131.
132.
133.
134.
135.
136.
137.
138.
139.
140.
141.
142.
143.
144.
145.
146.
147.
148.
149.
150.
151.
152.
153.
154.
155.
156.
157.
158.
159.
160.
161.
162.
163.
164.
165.
166.
167.
168.
169.
package com.example.drums.magicdrums;

import android.app.Activity;
import android.content.Context;
import android.media.MediaPlayer;
import android.os.Bundle;
import android.view.MotionEvent;
import android.view.View;
import android.widget.Button;

public class Main2Activity extends Activity {
    Context context = this;
    int soundID;
    boolean loaded = true;
    Button playSound,playSound2,playSound3,playSound5,playSound6,playSound7,playSound8,playSound9,playSound10,playSound11;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        final MediaPlayer bark = MediaPlayer.create(this, R.raw.bark);
        final MediaPlayer bark2 = MediaPlayer.create(this, R.raw.bark2);
        final MediaPlayer bark3 = MediaPlayer.create(this, R.raw.bark3);
        final MediaPlayer bark5 = MediaPlayer.create(this, R.raw.bark5);
        final MediaPlayer bark6 = MediaPlayer.create(this, R.raw.bark6);
        final MediaPlayer bark7 = MediaPlayer.create(this, R.raw.bark7);
        final MediaPlayer bark8 = MediaPlayer.create(this, R.raw.bark8);
        final MediaPlayer bark9 = MediaPlayer.create(this, R.raw.bark9);
        final MediaPlayer bark10 = MediaPlayer.create(this, R.raw.bark10);
        final MediaPlayer bark11 = MediaPlayer.create(this, R.raw.bark11);

        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main2);

        playSound = (Button) findViewById(R.id.button);
        playSound2 = (Button) findViewById(R.id.button2);
        playSound3 = (Button) findViewById(R.id.button3);
        playSound5 = (Button) findViewById(R.id.button5);
        playSound6 = (Button) findViewById(R.id.button6);
        playSound7 = (Button) findViewById(R.id.button7);
        playSound8 = (Button) findViewById(R.id.button8);
        playSound9 = (Button) findViewById(R.id.button9);
        playSound10 = (Button) findViewById(R.id.button10);
        playSound11 = (Button) findViewById(R.id.button11);


        playSound.setOnTouchListener(new View.OnTouchListener() {
            @Override
            public boolean onTouch(View v, MotionEvent event) {
                switch (event.getAction()) {
                    case MotionEvent.ACTION_DOWN:
                        bark.start();
                        break;
                    case MotionEvent.ACTION_UP:
                }
                return true;
            }
        });

        playSound2.setOnTouchListener(new View.OnTouchListener() {
            @Override
            public boolean onTouch(View v, MotionEvent event) {
                switch (event.getAction()) {
                    case MotionEvent.ACTION_DOWN:
                        bark2.start();
                        break;              
                    case MotionEvent.ACTION_UP:
                }
                return true;
            }
        });
        playSound3.setOnTouchListener(new View.OnTouchListener() {
            @Override
            public boolean onTouch(View v, MotionEvent event) {
                switch (event.getAction()) {
                    case MotionEvent.ACTION_DOWN:
                        bark3.start();
                        break;
                    case MotionEvent.ACTION_UP:

                }
                return true;
            }
        });
        playSound5.setOnTouchListener(new View.OnTouchListener() {
            @Override
            public boolean onTouch(View v, MotionEvent event) {
                switch (event.getAction()) {
                    case MotionEvent.ACTION_DOWN:
                        bark5.start();
                        break;
                    case MotionEvent.ACTION_UP:
                }
                return true;
            }
        });
        playSound6.setOnTouchListener(new View.OnTouchListener() {
            @Override
            public boolean onTouch(View v, MotionEvent event) {
                switch (event.getAction()) {
                    case MotionEvent.ACTION_DOWN:
                        bark6.start();
                        break;
                    case MotionEvent.ACTION_UP:
                }
                return true;
            }
        });
        playSound7.setOnTouchListener(new View.OnTouchListener() {
            @Override
            public boolean onTouch(View v, MotionEvent event) {
                switch (event.getAction()) {
                    case MotionEvent.ACTION_DOWN:
     bark7.start();
                        break;
                    case MotionEvent.ACTION_UP:
                }
                return true;
            }
        });
        playSound8.setOnTouchListener(new View.OnTouchListener() {
            @Override
            public boolean onTouch(View v, MotionEvent event) {
                switch (event.getAction()) {
                    case MotionEvent.ACTION_DOWN:
                         bark8.start();
                        break;
                    case MotionEvent.ACTION_UP:
                }
                return true;
            }
        });
        playSound9.setOnTouchListener(new View.OnTouchListener() {
            @Override
            public boolean onTouch(View v, MotionEvent event) {
                switch (event.getAction()) {
                    case MotionEvent.ACTION_DOWN:
              bark9.start();
                        break;
                    case MotionEvent.ACTION_UP:
                }
                return true;
            }
        });
        playSound10.setOnTouchListener(new View.OnTouchListener() {
            @Override
            public boolean onTouch(View v, MotionEvent event) {
                switch (event.getAction()) {
                    case MotionEvent.ACTION_DOWN:
                      bark10.start();
                        break;
                    case MotionEvent.ACTION_UP:
                }
                return true;
            }
        });
        playSound11.setOnTouchListener(new View.OnTouchListener() {
            @Override
            public boolean onTouch(View v, MotionEvent event) {
                switch (event.getAction()) {
                    case MotionEvent.ACTION_DOWN:
                 bark11.start();
                        break;
                    case MotionEvent.ACTION_UP:
                }
                return true;
            }
        });
    }

}



сейчас звук нормально идеи Но нужно чтоб при быстром повторном нажатии предыдущий звук не останавливался, а новый просто накладывался.
вот сижу, думаю)
нужно с if прописать bark11.start(); (пока хз, как)
...
Рейтинг: 0 / 0
onTouch со звуком
    #39271595
Фотография Джибс
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MediaPlayer используется для музыки

SoundPool для коротких звуков
...
Рейтинг: 0 / 0
onTouch со звуком
    #39271608
ilja2210
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Джибс,

да это ясн. Звуки у меня короткие. Ну как звук выстрела. Есть варианты, че сделать?
...
Рейтинг: 0 / 0
onTouch со звуком
    #39272011
ilja2210
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Джибс,

Код: java
1.
2.
3.
                    case MotionEvent.ACTION_DOWN:
                        bark2.start();
                        break;



нужно, чтобы старый звук не кончался, когда новый начинается
...
Рейтинг: 0 / 0
onTouch со звуком
    #39272020
Фотография Джибс
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
soundPool который ты убрал, с этим прекрасно справляется
...
Рейтинг: 0 / 0
onTouch со звуком
    #39272025
ilja2210
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Джибс,

это верно, но я не знаю, как прописать код так, чтобы работали все кнопки (в моем коде работает только 1- Button)
...
Рейтинг: 0 / 0
onTouch со звуком
    #39272065
ilja2210
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Джибс,

прост почему тут на всех кнопках работает только одна кнопка?
Код: 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.
81.
82.
83.
84.
85.
86.
87.
package com.example.drums.candydrums;

import android.app.Activity;
import android.media.AudioManager;
import android.media.SoundPool;
import android.media.SoundPool.OnLoadCompleteListener;
import android.os.Bundle;
import android.util.Log;
import android.view.MotionEvent;
import android.view.View;
import android.view.View.OnTouchListener;

public class MainActivity extends Activity implements OnTouchListener {
    private SoundPool soundPool;
    private int soundID;
    boolean loaded = false;

    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        View view = findViewById(R.id.button);
        View view2 = findViewById(R.id.button2);
        View view3 = findViewById(R.id.button3);
        View view5 = findViewById(R.id.button5);
        View view6 = findViewById(R.id.button6);
        View view7 = findViewById(R.id.button7);
        View view8 = findViewById(R.id.button8);
        View view9 = findViewById(R.id.button9);
        View view10 = findViewById(R.id.button10);
        View view11 = findViewById(R.id.button11);

        view.setOnTouchListener(this);
        view2.setOnTouchListener(this);
        view3.setOnTouchListener(this);
        view5.setOnTouchListener(this);
        view6.setOnTouchListener(this);
        view7.setOnTouchListener(this);
        view8.setOnTouchListener(this);
        view9.setOnTouchListener(this);
        view10.setOnTouchListener(this);
        view11.setOnTouchListener(this);

// Set the hardware buttons to control the music
        this.setVolumeControlStream(AudioManager.STREAM_MUSIC);
// Load the sound
        soundPool = new SoundPool(10, AudioManager.STREAM_MUSIC, 0);
        soundPool.setOnLoadCompleteListener(new OnLoadCompleteListener() {
            @Override
            public void onLoadComplete(SoundPool soundPool, int sampleId,
                                       int status) {
                loaded = true;
            }
        });
        soundID = soundPool.load(this, R.raw.bark, 1);



    }

    @Override
    public boolean onTouch(View v, MotionEvent event) {
        if (event.getAction() == MotionEvent.ACTION_DOWN) {
// Getting the user sound settings
            AudioManager audioManager = (AudioManager) getSystemService(AUDIO_SERVICE);
            float actualVolume = (float) audioManager
                    .getStreamVolume(AudioManager.STREAM_MUSIC);
            float maxVolume = (float) audioManager
                    .getStreamMaxVolume(AudioManager.STREAM_MUSIC);
            float volume = actualVolume / maxVolume;
// Is the sound loaded already?
            if (loaded) {
                soundPool.play(soundID, volume, volume, 1, 0, 1f);
                Log.e("Test", "Played sound");
            }

        }
        if (event.getAction() == MotionEvent.ACTION_UP) {

        }


        return true;
    }
}

...
Рейтинг: 0 / 0
onTouch со звуком
    #39272217
Фотография Джибс
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
onTouch(View v,


View v

из него всегда можно вытащить id

сравнить его с R.id.button ... R.id.buttonN твоим
и воспроизводить нужный звук.

или использовать tag куда id звука пихнуть заранее и потом уже передать в soundPool.play

вариантов куча, но просто кому то нужно основы почитать.
...
Рейтинг: 0 / 0
onTouch со звуком
    #39272368
ilja2210
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Джибс,

типа того? это работает (сделал для двух кнопок)

Код: 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.
81.
82.
83.
84.
85.
86.
87.
88.
89.
90.
91.
92.
93.
package com.example.drums.candydrums;

import android.app.Activity;
import android.media.AudioManager;
import android.media.SoundPool;
import android.media.SoundPool.OnLoadCompleteListener;
import android.os.Bundle;
import android.util.Log;
import android.view.MotionEvent;
import android.view.View;
import android.view.View.OnTouchListener;

public class MainActivity extends Activity implements OnTouchListener {
    private SoundPool soundPool,soundPool2;
    private int soundID,soundID2;
    boolean loaded = false;

    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        View view = findViewById(R.id.button);
        View view2 = findViewById(R.id.button2);

        view.setOnTouchListener(this);
        view2.setOnTouchListener(this);


// Set the hardware buttons to control the music
        this.setVolumeControlStream(AudioManager.STREAM_MUSIC);
// Load the sound
        soundPool = new SoundPool(10, AudioManager.STREAM_MUSIC, 0);
        soundPool2 = new SoundPool(10, AudioManager.STREAM_MUSIC, 0);

        soundPool.setOnLoadCompleteListener(new OnLoadCompleteListener() {
            @Override
            public void onLoadComplete(SoundPool soundPool, int sampleId,
                                       int status) {
                loaded = true;
            }
        });
        soundPool2.setOnLoadCompleteListener(new OnLoadCompleteListener() {
            @Override
            public void onLoadComplete(SoundPool soundPool2, int sampleId,
                                       int status) {
                loaded = true;
            }
        });
        soundID = soundPool.load(this, R.raw.bark, 1);
        soundID2 = soundPool2.load(this, R.raw.bark5, 1);



    }

    @Override
    public boolean onTouch(View v, MotionEvent event) {
        if (event.getAction() == MotionEvent.ACTION_DOWN) {
// Getting the user sound settings
            AudioManager audioManager = (AudioManager) getSystemService(AUDIO_SERVICE);
            float actualVolume = (float) audioManager
                    .getStreamVolume(AudioManager.STREAM_MUSIC);
            float maxVolume = (float) audioManager
                    .getStreamMaxVolume(AudioManager.STREAM_MUSIC);
            float volume = actualVolume / maxVolume;
// Is the sound loaded already?
            if(v.getId()==R.id.button){

                if (loaded) {
                    soundPool.play(soundID, volume, volume, 1, 0, 1f);
                    Log.e("Test", "Played sound");
                }

            }
            if(v.getId()==R.id.button2){

                if (loaded) {
                    soundPool2.play(soundID2, volume, volume, 1, 0, 1f);
                    Log.e("Test", "Played sound");
                }}

        }

        if (event.getAction() == MotionEvent.ACTION_UP) {

        }


        return true;
    }
}

...
Рейтинг: 0 / 0
onTouch со звуком
    #39272375
ilja2210
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Джибс,

сделал больше кнопок- чет иногда с перебоями звучит
...
Рейтинг: 0 / 0
onTouch со звуком
    #39272384
Фотография Джибс
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
зачем ты два пула создаешь ?

с одним работать не можешь ?
...
Рейтинг: 0 / 0
onTouch со звуком
    #39272402
ilja2210
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Джибс,

чет такое ощущение, что для звуков барабанов нужно было медиаплеер делать)
...
Рейтинг: 0 / 0
onTouch со звуком
    #39272515
Фотография Джибс
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а может доки почитать ?
...
Рейтинг: 0 / 0
onTouch со звуком
    #39272647
ilja2210
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Джибс,
эмм...логи, мб?
...
Рейтинг: 0 / 0
onTouch со звуком
    #39272887
chpasha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ilja2210Джибс,
эмм...логи, мб?
нет, не логи, а книжку. твой уровень знаний просто ужас-ужас, извини за прямоту.
...
Рейтинг: 0 / 0
onTouch со звуком
    #39273246
ilja2210
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
chpasha,

да я это и так понимаю (про низкий уровень)
прост мб ктот предложит вариант, че не там с этим кодом (кажется, утечка памяти)
...
Рейтинг: 0 / 0
onTouch со звуком
    #39273293
Фотография wadman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ilja2210извините, не секу, как ставить нужный тег((
Модератор: Тэг spolier (см. в содержание кнопки "Прочее" или "дополнит.") прячет текст и не портит разметку при чтении со смартфона. Сначала spoiler , затем вложенный в него src .
...
Рейтинг: 0 / 0
25 сообщений из 50, страница 2 из 2
Форумы / Android [игнор отключен] [закрыт для гостей] / onTouch со звуком
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]