Всегда используйте ответ Джона Клемента .
globals()
возвращает словарь, поддерживающий глобальное пространство имен, после чего вы можете рассматривать его как любой другой словарь. Вы не должны этого делать. Это приводит к загрязнению пространства имен, может переопределять существующие переменные и затрудняет отладки проблем, возникающих в результате этого.
for name in names:
globals().setdefault(name, [])
apple.append('red')
print(apple) # prints ['red']
Вам нужно было заранее знать, что список содержит «яблоко» в порядке позже ссылаться на переменную «apple», после чего вы могли бы определить эту переменную как обычно. Поэтому на практике это не полезно. Учитывая, что ответ Джона также дает словарь, нет смысла использовать globals
.
Вам нужно быть осторожным в сборщике мусора, освобождающем память, используемую вашим звуком, пока звук все еще играет. Хотя это редко случается, когда это происходит, вы просто будете играть в случайную память. Для этого есть решение, в комплекте с исходным кодом для достижения того, что вы хотите здесь: http://msdn.microsoft.com/en-us/library/dd743680 (VS.85) .aspx
Прокрутите до самого нижнего уровня в разделе «Содержимое сообщества».
Когда вам нужно добавить звуки в свой проект, вы сделаете это, сыграв .wav
файл (ы). Затем вам нужно добавить файлы .wav
, подобные этому.
using System.Media; //write this at the top of the code
SoundPlayer my_wave_file = new SoundPlayer("F:/SOund wave file/airplanefly.wav");
my_wave_file.PlaySync(); // PlaySync means that once sound start then no other activity if form will occur untill sound goes to finish
Помните, что вам нужно записать путь к файлу с форматированием слэшей (/
), не используйте обратные косые черты (\
) при указании пути к файлу, иначе вы получите сообщение об ошибке.
Также обратите внимание: если вы хотите, чтобы во время воспроизведения звучания звучали другие вещи, вы можете изменить my_wave_file.PlaySync();
с my_wave_file.PlayAsync();
.
Поскольку mySoundFile
является Stream
, вы можете воспользоваться перегруженным конструктором SoundPlayer
, который принимает объект Stream
:
System.IO.Stream str = Properties.Resources.mySoundFile;
System.Media.SoundPlayer snd = new System.Media.SoundPlayer(str);
snd.Play();
SoundPlayer
, который используется.
– Evan Mulawski
13 June 2016 в 13:51
a) ОК, сначала добавьте аудиофайл (.wav) в ресурс проекта.
[/g0]
[/g1]
[/g2]
[/g3]
b) Теперь просто напишите этот код, чтобы воспроизвести звук.
В этом коде я воспроизвожу аудио в событии загрузки формы.
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.Media; // at first you've to import this package to access SoundPlayer
namespace WindowsFormsApplication1
{
public partial class login : Form
{
public login()
{
InitializeComponent();
}
private void login_Load(object sender, EventArgs e)
{
playaudio(); // calling the function
}
private void playaudio() // defining the function
{
SoundPlayer audio = new SoundPlayer(WindowsFormsApplication1.Properties.Resources.Connect); // here WindowsFormsApplication1 is the namespace and Connect is the audio file name
audio.Play();
}
}
}
Вот и все. Все сделано, теперь запустите проект (нажмите f5) и наслаждайтесь своим звуком. Всего наилучшего. :)