С Новым годом! Форум программистов, компьютерный форум, киберфорум
Unity, Unity3D
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.80/88: Рейтинг темы: голосов - 88, средняя оценка - 4.80
391 / 301 / 102
Регистрация: 07.05.2017
Сообщений: 2,080
1

Как остановить воспроизведение звука?

15.05.2017, 14:04. Показов 17612. Ответов 14
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
собственно вопрос от новичка.
у меня на нажатие клавиши проигрывается звук. оба звука в скрипте как AudioClip.
воспроизвожу его так
C#
1
GetComponent<AudioSource>().PlayOneShot(ShuteSound);
все работает ,но на отпускание должен останавливаться.
пытаюсь это делать так
C#
1
GetComponent<AudioSource>().Stop(_Volt);
но никак не дает мне это использовать. не принимет 1 аргумент говорит. помогите товарищи, туплю. не догоню никак
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
15.05.2017, 14:04
Ответы с готовыми решениями:

Остановить воспроизведение звука, если кнопка не нажата
Кто может подсказать в таком вопросе? - Кнопки на форме привязаны к кнопкам клавиатуры, к ним в...

DirectX.AudioVideoPlayback: как остановить воспроизведение
Imports Microsoft.DirectX.AudioVideoPlayback Public Class Form1 Dim blnPlay As...

Как остановить проигрывание звука?
Привет) пишу программу в WindowsForm. на форме есть кнопка, которая открывает WAV-файл и...

Как повесить на кнопку воспроизведение звука?
как сделать звук многопоточным?

14
295 / 244 / 128
Регистрация: 24.12.2014
Сообщений: 708
15.05.2017, 15:01 2
Цитата Сообщение от Gammister Посмотреть сообщение
не принимет 1 аргумент говорит.
Естественно говорит. Метод "Stop" не принимает аргументов, а Вы ему пытаетесь передать какой-то "_Volt".
0
391 / 301 / 102
Регистрация: 07.05.2017
Сообщений: 2,080
15.05.2017, 15:22  [ТС] 3
ну так а как же все таки ?
0
459 / 403 / 153
Регистрация: 23.01.2011
Сообщений: 1,054
15.05.2017, 16:13 4
C#
1
GetComponent<AudioSource>().Stop();
1
391 / 301 / 102
Регистрация: 07.05.2017
Сообщений: 2,080
15.05.2017, 16:29  [ТС] 5
спасибо. а как мне правильно обратиться к нужному клипу.? у меня их два. на отпускание клавиши еще один есть. опять застрял блин. и у одного нужно питч регулировать при удержании кнопки
0
459 / 403 / 153
Регистрация: 23.01.2011
Сообщений: 1,054
15.05.2017, 18:42 6
Лучший ответ Сообщение было отмечено Gammister как решение

Решение

C#
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
  
  public AudioClip clip1;
  public AudioClip clip2;
 
  public AudioSource player;
 
  private void Start()
  {
      player = GetComponent<AudioSource> ();
  }
 
  private void PlaySoundOne ()
  {
     player.pitch = 0.5f;
     player.clip = clip1;
     player.Play ();
  }
 
  private void PlaySoundTwo ()
  {
     player.pitch = 0.8f;
     player.clip = clip2;
     player.Play ();
  }
   
  private void PlaySoundTwo (float _pitch)
  {
     player.pitch = _pitch;
     player.clip = clip2;
     player.Play ();
  }  
 
  private void PlaySoundAnother (float _pitch, AudioClip _clip)
  {
     player.pitch = _pitch;
     player.clip = _clip;
     player.Play ();
  } 
 
 
  private void StopPlayer()
  {
     player.Stop();
  }
2
391 / 301 / 102
Регистрация: 07.05.2017
Сообщений: 2,080
16.05.2017, 03:45  [ТС] 7
Prog Maker, ну ты уж извини барана. задолбал я тебя. ты и так мне код написал .
этот код как отдельный скрипт использовать для хранения звука и функций ? а на нажатие мыши вызывать методы ? просто дупля теперь не отстрелю как прикрутить нажатия мыши именно сюда. нужно чтобы на нажатие первый звук воспроизводился с поднятием питча, а при отпускании останавливался и возвращал питч назад. а второй звук воспроизводился один раз на отпускание.типа как энергетическая перезарядка и потом на отпускание выстрел.

Добавлено через 23 минуты
вернее на удержание кнопки звук с питчем. вот так правильно
0
459 / 403 / 153
Регистрация: 23.01.2011
Сообщений: 1,054
16.05.2017, 06:36 8
Блин мудрено так написал )))) начнем с первого при нажатии кнопки мыши играет первый звук и питч подымается пока мы держим кнопку? Или один раз подымается до какого то уровня?
0
391 / 301 / 102
Регистрация: 07.05.2017
Сообщений: 2,080
16.05.2017, 16:54  [ТС] 9
да. при нажатии первый звук подымается до высоты допустим 20 и оставался таким. а при отпускании этот звук останавливается и питч назад должен вернуться и проиграться второй звук. звук выстрела
0
459 / 403 / 153
Регистрация: 23.01.2011
Сообщений: 1,054
16.05.2017, 17:03 10
Скинь свои звуки. Я хочу понять что это будет. Я сделаю и выложу тебе скрипт.
0
391 / 301 / 102
Регистрация: 07.05.2017
Сообщений: 2,080
16.05.2017, 21:01  [ТС] 11
вставь свои любые. я думаю потом заменю на свои, это не принципиально . я прав ?

Добавлено через 1 минуту
при ужержании кнопки подымается питч первого звука. вот так вот правильно.
0
459 / 403 / 153
Регистрация: 23.01.2011
Сообщений: 1,054
17.05.2017, 12:42 12
Лучший ответ Сообщение было отмечено Gammister как решение

Решение

ладно понял. как время найду напишу скрипт.

Добавлено через 13 часов 45 минут
Это аудио менеджер. Вешай его на пустой объект, добавь компонент AudioSource.

C#
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
using UnityEngine;
 
public class AudioManager : MonoBehaviour {
 
    public AudioClip[] audioClips;
 
    public static AudioManager instance;
 
    private AudioSource player;
 
    private void Awake ()
    {
        player = GetComponent<AudioSource> ();
    }
 
    void Start ()
    {
        if (instance == null) instance = this;
 
        DontDestroyOnLoad (gameObject); // объект не будет уничтожатся при загрузке новой сцены
    }
    
    /// <summary>
    /// Play Music
    /// </summary>
    /// <param name="clip"></param>
    public static void PlaySound(AudioClip clip)
    {
        instance.player.clip = clip;
        instance.player.Play ();
    }
    
    /// <summary>
    /// Поднять питч на кол-во pitch едениц
    /// </summary>
    /// <param name="pitch"></param>
    public static void PichUp (float pitch)
    {
        instance.player.pitch += pitch;
    }
 
    /// <summary>
    /// Получаем массив клипов
    /// </summary>
    /// <returns></returns>
    public static AudioClip[] GetClips ()
    {
        return instance.audioClips;
    }
 
    /// <summary>
    /// Получаем текущий pitch
    /// </summary>
    /// <returns></returns>
    public static float GetPitch ()
    {
        return instance.player.pitch;
    }
 
    /// <summary>
    /// Сброс питча
    /// </summary>
    public static void ResetPitch ()
    {
        instance.player.pitch = 1f;
    }
 
}
это используй в любом скрипте.

C#
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
 bool leftMouseButtonIsPressed = false;
   
    private void Update ()
    {
        if (Input.GetMouseButton (0))
        {
            if (!leftMouseButtonIsPressed)
            {
                leftMouseButtonIsPressed = true;
                AudioManager.PlaySound (AudioManager.GetClips () [3]);
            }
 
            if (leftMouseButtonIsPressed)
            {
                if (AudioManager.GetPitch () <= 3)
                    AudioManager.PichUp (0.01f);
            }
        }
 
        if (Input.GetMouseButtonUp (0))
        {
            if (leftMouseButtonIsPressed)
            {
                leftMouseButtonIsPressed = false;
                AudioManager.ResetPitch ();
                AudioManager.PlaySound (AudioManager.GetClips () [0]);
            }
        }
    }
Не большое пояснение по поводу этой строчки
C#
1
AudioManager.GetClips () [3]
У тебя вместо 3 может быть другая цифра.

Это индекс клипа в массиве, т.е. первый клип имеет индекс 0, второй - 1, третий - 2 и т.д.

А сами клипы ты через инспектор добавлять будешь.

Да еще одно замечание - pitch может быть только в диапазоне от -3 до 3.
1
391 / 301 / 102
Регистрация: 07.05.2017
Сообщений: 2,080
17.05.2017, 19:31  [ТС] 13
вот спасибо тебе добрый человек !! помог, так помог !!!!

Добавлено через 6 часов 40 минут
получается ты создаешь отдельный скрипт для хранения звуков а второй уже функциональный. правильно ? ну так для себя что бы знать )). а питч приращивал в абдейте с помощью += Time.deltaTime; выростал аж до 30 ти по моему
и при отпускании клавиши питч возвращался назад. но как-то коряво возвращался, слишком низко потом звук воспроизводился. даже не понятно было какой звук воспроизводится. слишком низко он звучал. в общем я вроде и смог сделать но что хотел по началу, но не совсем правильно работало. был один скрипт и целый день матюков
0
459 / 403 / 153
Регистрация: 23.01.2011
Сообщений: 1,054
17.05.2017, 20:28 14
Цитата Сообщение от Gammister Посмотреть сообщение
выростал аж до 30 ти по моем
он больше 3 не может вырасти ))))

Цитата Сообщение от Gammister Посмотреть сообщение
но как-то коряво возвращался
смотри код лучше - питч в еденицу возвращается.
C#
1
2
3
4
public static void ResetPitch ()
    {
        instance.player.pitch = 1f;
    }
0
391 / 301 / 102
Регистрация: 07.05.2017
Сообщений: 2,080
17.05.2017, 21:18  [ТС] 15
это я рассказываю про свои попытки сделать манипуляции со звуком ))). еще до того как тему создал ))
0
17.05.2017, 21:18
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
17.05.2017, 21:18
Помогаю со студенческими работами здесь

Как регулировать воспроизведение звука на компе между наушниками и динамиками?
Купил наушники работают нормально. Но есть 1 вопрос. Допуситм вечером я хочу, чтобы звук...

Как осуществить воспроизведение звука из файла в программе на С++ (Visual Studio 2013)?
Вопрос в заголовке.

Остановить воспроизведение музыки. Консоль
Ребята, помогите , при нажатии на '1'- музыка останавливалась, в цикле видимо не выйдет, ...

Не удается остановить воспроизведение потока после закрытия и открытия приложения
Написал приложение для воспроизведения аудио-потока. Кнопки Старт и Стоп работают нормально. Если...


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

Или воспользуйтесь поиском по форуму:
15
Ответ Создать тему
Новые блоги и статьи
Как настроить CI/CD с помощью Jenkins
InfoMaster 15.01.2025
Введение в CI/ CD и Jenkins В современной разработке программного обеспечения непрерывная интеграция (CI) и непрерывная доставка (CD) стали неотъемлемыми элементами процесса создания качественных. . .
Как написать микросервис на Go/Golang с Kafka и GitHub CI/CD
InfoMaster 14.01.2025
Определение микросервиса, преимущества использования Go/ Golang Микросервис – это архитектурный подход к разработке программного обеспечения, при котором приложение состоит из небольших, независимо. . .
Как написать микросервис с нуля на C# с RabbitMQ, CQRS и CI/CD
InfoMaster 14.01.2025
В современном мире разработки программного обеспечения микросервисная архитектура стала стандартом де-факто для создания масштабируемых и гибких приложений. Этот архитектурный подход предполагает. . .
Как создать интернет-магазин на PHP и JavaScript
InfoMaster 14.01.2025
В современном мире электронная коммерция стала неотъемлемой частью бизнеса. Создание собственного интернет-магазина открывает широкие возможности для предпринимателей, позволяя достичь большей. . .
Как написать Тетрис на Ассемблере
InfoMaster 14.01.2025
Тетрис – одна из самых узнаваемых и популярных компьютерных игр, созданная в 1984 году советским программистом Алексеем Пажитновым. За прошедшие десятилетия она завоевала симпатии миллионы людей по. . .
Как создать игру "Танчики" на Unity3d и C#
InfoMaster 14.01.2025
Разработка игр – это увлекательный процесс, сочетающий в себе творчество и технические навыки. В этой статье мы рассмотрим создание классической игры "Танчики" с использованием Unity3D и языка. . .
Организую платный онлайн микро-курс по доработке Android-клиента Telegram
_Ivana 14.01.2025
Официальная версия и распространенные форки не полностью устраивают? Сделай свою кастомную версию клиента! 4 занятия по 2 часа (2 недели пн, ср 19:00-21:00 по Москве). Первое вводное занятие. . .
Как создать приложение для фитнеса для iOS/iPhone на Kotlin
InfoMaster 14.01.2025
Создание собственного фитнес-приложения — это не только захватывающий, но и полезный процесс, ведь оно может стать вашим верным помощником на пути к здоровому и активному образу жизни. В современных. . .
Как создать приложение магазина для iOS/iPhone на Swift
InfoMaster 14.01.2025
Введение в разработку iOS-приложений Разработка приложений для iPhone и других устройств на базе iOS открывает огромные возможности для создания инновационных мобильных решений. В данной статье мы. . .
Это работает. Скорость асинхронной логики велика. Вопрос видимо останется в стабильности. Плата - огонь!
Hrethgir 13.01.2025
По прошлому проекту в Logisim Evolution https:/ / www. cyberforum. ru/ blogs/ 223907/ blog8781. html прилагаю файл архива проекта в Gowin Eda. Восьмибитный счётчик из сумматора+ генератор сигнала. . .
UserScript для подсветки кнопок языков программировани­­­­я в зависимости от текущего раздела
volvo 13.01.2025
В результате работы этого скрипта подсвечиваются нужные кнопки не только в форме быстрого ответа, но и при редактировании сообщения: / / ==UserScript== / / @name CF_DefaultLangSelect / / . . .
Введение в модели и алгоритмы машинного обучения
InfoMaster 12.01.2025
Машинное обучение представляет собой одну из наиболее динамично развивающихся областей искусственного интеллекта, которая фокусируется на разработке алгоритмов и методов, позволяющих компьютерам. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru