Войти
ФлеймФорумРазработка игр

Платформы Хулиона, РЕАЛЬНО гринлайт, стим (4 стр)

Страницы: 13 4 5 674 Следующая »
#45
7:30, 20 авг. 2016

Suslik
> некроссплатформенно,

Не удивительно.

> нетипобезопасно,

?

> неудобная реализация объектного подхода через C-интерфейс,

Тут нужно вспомнить когда это API создавалось.

> огромные списки инициализации без значений по умолчанию,

Хм. Беда.

> вечные проблемы совместимости между разными версиями windows sdk.

Ну например какие это?

> захочется прочитать какой-нибудь ogg — ещё для него парсер писать? а если захочется в
> реалтайме звук догружать? а кешировать большие аудиофайлы?
> по-моему, гораздо интереснее разрабатывать что угодно, кроме очередного убогого
> парсера wav- или bmp-файла. достаточно взять любую библиотеку, разработанную
> специально для этого и для разнообразия заняться разработкой, собственно, того,
> для чего всё это нужно.

С точки зрения рационального подхода - да.
С точки зрения "я-сам-всё-напишу-это-интересно" - нет.

#46
7:36, 20 авг. 2016

TarasB
> waveform-audio

Как ты собрался воспроизводить несколько звуков через waveform-audio одновременно?

#47
10:42, 20 авг. 2016

TarasB
> 1. Инициализировать звуковую подсистему.
> 5. Закрыть звуковую подсистему.
  И что, ты собрался инициализировать и закрывать звуковую подсистему при проигрывании каждого звука удара ножечком? Ну да, конечно, ведь каждый удар может быть последним, так важно, чтобы подсистема была закрыта во время и не была инициализирована раньше, чем это потребуется:)

> и я, как человек, трогавший андроид, и до сих пор не отмывший руки (такое не
> отмывается), я скажу, что это просто офигеть как классно.
  То есть портянку того говна, которое ты привёл, ты считаешь лучше, чем это:

MediaPlayer mediaPlayer = MediaPlayer.create(context, R.raw.sound_file_1);
mediaPlayer.start();
  Чувак, ты офигенен!

#48
11:08, 20 авг. 2016

Zefick
> И что, ты собрался инициализировать и закрывать звуковую подсистему при
> проигрывании каждого звука удара ножечком?
Такая идея могла прийти в голову только тебе.

Zefick
> ты считаешь лучше, чем это
Нет, JNI это

const SLInterfaceID pIDs[1] = {SL_IID_ENGINE};
    const SLboolean pIDsRequired[1] = {SL_BOOLEAN_TRUE};
    SLresult result;
    result = slCreateEngine (&engineObj, 0, NULL, 1, pIDs, pIDsRequired);
    if (result != SL_RESULT_SUCCESS) tbal::LogW("Error in slCreateEngine!");
    result = (*engineObj)->Realize(engineObj, SL_BOOLEAN_FALSE);
    if (result != SL_RESULT_SUCCESS) tbal::LogW("Error in Realize engineObj!");
    result = (*engineObj)->GetInterface(engineObj, SL_IID_ENGINE, &engine);
    if (result != SL_RESULT_SUCCESS) tbal::LogW("Error in GetInterface!");
    const SLInterfaceID pOutputMixIDs[] = {};
    const SLboolean pOutputMixRequired[] = {};
    result = (*engine)->CreateOutputMix(engine, &outputMixObj, 0, pOutputMixIDs, pOutputMixRequired);
    if (result != SL_RESULT_SUCCESS) tbal::LogW("Error in CreateOutputMix!");
     result = (*outputMixObj)->Realize(outputMixObj, SL_BOOLEAN_FALSE);
    if (result != SL_RESULT_SUCCESS) tbal::LogW("Error in Realize outputMixObj!");

Хаус
> Как ты собрался воспроизводить несколько звуков через waveform-audio
> одновременно?
В чём проблема? Два экземпляра звука создам и один за другим пошлю на waveOutWrite

#49
11:19, 20 авг. 2016

Zefick
> MediaPlayer
Посоветовал так посоветовал.

#50
11:29, 20 авг. 2016

Suslik
> например
А, ну да. Работа на результат. Тогда ок. Мне это просто не очень близко.

> ну вот тебе в три строчки через класс музыки, это что-то поменяет?
А сам как думаешь? Это же сорт-оф гуи, чем меньше кликов, тем удобнее. Скажем, открываем ярлык с раб.стола одним левым кликом, или правый клик, выбираем в меню, там подменю, и потом только открываем.
С интерфейсом либы то же самое. Для простых действий не должно быть десять строчек лабуды, иначе это плохой интерфейс. Избыточный.

#51
11:33, 20 авг. 2016

TarasB
> Нет, JNI это
  Нет, это не JNI и им тут даже не пахнет. JNI это когда ты из крестов вызываешь методы Java или наоборот, чего тут нет.
  А то, что ты привёл называется OpenSL ES. Он выглядит так уродски сам по себе, потому что разработан для встраиваемых систем и максимально абстрагирован от платформы (то есть тут даже андроид совершенно ни при чём), поэтому ты видишь там какие-то движки, интерфейсы и совершенно идитские вызовы через указатель с передачей указателя на него же.

#52
11:37, 20 авг. 2016

122
> С интерфейсом либы то же самое. Для простых действий не должно быть десять
> строчек лабуды, иначе это плохой интерфейс. Избыточный.
Наоборот. Десять строчек лабуды ты всегда можешь завернуть, как хочешь.
А вот развернуть - уже нет.

#53
11:42, 20 авг. 2016

beejah
> Десять строчек лабуды ты всегда можешь завернуть, как хочешь.
Я и сотню могу. Как раз самописное чтение бмп получится. Суть либы вроде в том, чтобы уйти от самописного чтения.

#54
11:45, 20 авг. 2016

Zefick
> Он выглядит так уродски
Нормально он выглядит.

> совершенно идиотские вызовы через указатель с передачей указателя на него же.
Отличные вызовы. А то, что малахольные девочки без яиц пугаются - это же хорошо.
Пусть скриптики пишут.

#55
11:56, 20 авг. 2016

122
> Я и сотню могу. Как раз самописное чтение бмп получится.
С хрена ли. Получится хелпер, который читает бмп именно так, как ты хочешь, абстрагируя тебя от неиспользуемых фич.
Бмп плохой пример, конечно.

> Суть либы вроде в том, чтобы уйти от самописного чтения.
Дык это как раз то, что и получается после того, как "завернуть, как хочешь".
Когда мне понадобится какие-нибудь rle, цветовые трансформации или хрен знает, что еще, другие форматы, неважно, любой функционал - мне либа, суть которой - читать бмп, ни поможет ни разу. Мне другая нужна, с нормальным интерфейсом, который не прячет от меня ничего за "простыми действиями".

#56
11:58, 20 авг. 2016

TarasB
> В чём проблема? Два экземпляра звука создам и один за другим пошлю на
> waveOutWrite

Это сработает по другому, не как ты думаешь, звуки воспроизведутся в порядке вызова waveOutWrite. Если нужно выводить через waveOutWrite два/несколько звуков одновременно, придётся микшировать потоки данных программным способом, http://www.gamedev.ru/code/forum/?id=217189

#57
12:04, 20 авг. 2016

122
> А сам как думаешь? Это же сорт-оф гуи, чем меньше кликов, тем удобнее. Скажем,
> открываем ярлык с раб.стола одним левым кликом, или правый клик, выбираем в
> меню, там подменю, и потом только открываем.
в моём представлении крутость API определяется одновременно как удобством его использования его для простых случаев, так и гибкостью для сложных. но если ты хочешь от звуковой либы только проигрывать wav-файлы, и для тебя либа, в которой это делается в 3 строчки, в полтора раза хуже либы, где это делается в 2, не буду же я тебя переубеждать?

#58
12:04, 20 авг. 2016

0iStalker
> звуки воспроизведутся в порядке вызова waveOutWrite.
Так я разным HWAVEOUT посылаю команду.

#59
12:12, 20 авг. 2016

Suslik
> в моём представлении крутость API определяется одновременно как удобством его
> использования его для простых случаев, так и для сложных.
В инженерной науке так не бывает. Карьерный самосвал на 50 тонн невозможно сочетать с пикапом. Либо то, либо другое, не одновременно. В либе будет и неподходящий размер, и избыточность интерфейса, и прочее и прочее.

Страницы: 13 4 5 674 Следующая »
ФлеймФорумРазработка игр

Тема в архиве.