Другое событие NullPointerException
возникает, когда объявляется массив объектов, а затем сразу же пытается разыменовать его внутри.
String[] phrases = new String[10];
String keyPhrase = "Bird";
for(String phrase : phrases) {
System.out.println(phrase.equals(keyPhrase));
}
Этот конкретный NPE можно избежать, если порядок сравнения отменяется ; а именно, использовать .equals
для гарантированного непустого объекта.
Все элементы внутри массива инициализируются их общим начальным значением ; для любого типа массива объектов, это означает, что все элементы null
.
Вы должны инициализировать элементы в массиве перед доступом или разыменованием их.
String[] phrases = new String[] {"The bird", "A bird", "My bird", "Bird"};
String keyPhrase = "Bird";
for(String phrase : phrases) {
System.out.println(phrase.equals(keyPhrase));
}
Внимательно изучите cSounds. Существует привязка Python, позволяют Вам делать довольно гибкий цифровой синтез. Существуют некоторые довольно полные доступные пакеты, также.
См. http://www.csounds.com/node/188 для пакета.
См. http://www.csounds.com/journal/issue6/pythonOpcodes.html для получения информации о сценариях Python в cSounds.
Я должен был сделать это несколько лет назад. Я использовал pymedia. Я не уверен, все еще ли это вокруг какого-либо пути, вот некоторый тестовый код, который я записал, когда я играл с ним. Этому приблизительно 3 года все же.
Редактирование: пример кода играет файл
import pymedia
import time
demuxer = pymedia.muxer.Demuxer('mp3') #this thing decodes the multipart file i call it a demucker
f = open(r"path to \song.mp3", 'rb')
spot = f.read()
frames = demuxer.parse(spot)
print 'read it has %i frames' % len(frames)
decoder = pymedia.audio.acodec.Decoder(demuxer.streams[0]) #this thing does the actual decoding
frame = decoder.decode(spot)
print dir(frame)
#sys.exit(1)
sound = pymedia.audio.sound
print frame.bitrate, frame.sample_rate
song = sound.Output( frame.sample_rate, frame.channels, 16 ) #this thing handles playing the song
while len(spot) > 0:
try:
if frame: song.play(frame.data)
spot = f.read(512)
frame = decoder.decode(spot)
except:
pass
while song.isPlaying(): time.sleep(.05)
print 'well done'
MP3 Существует разнообразие музыкального программного обеспечения Python, можно найти каталог здесь .
, Если Вы прокручиваете связанную страницу вниз, Вы находите раздел по Музыкальное Программирование в Python , описывающем несколько пакетов создания музыкальных произведений включая MusicKit и PySndObj.
В дополнение к тому, что было упомянуто ранее, я записал простому редактору аудио Python. http://code.google.com/p/yaalp/source/browse/#svn/trunk Видит main.py.
Это также имеет аудио управление и некоторые эффекты.
GPL Кода, таким образом, это могло быть начальной точкой для Вас.