Метка «OpenSL ES»

Приветствую всех, кому стало интересно узнать о моем небольшом проекте, которым занимаюсь в свободное от работы время, о своем долгоиграющем проекте под названием «tengine».

Какова же цель этого поста? Ответ простой — я ищу однодумцев. Я верю в то, что есть еще много людей, которым нравится славный и добрый олдскул. В этом и вся миссия — писать удовольствия ради что-то маленькое, но вполне функциональное, платформу для «приставочных» игрушек в стиле 8/16 бит.

Главная особенность, отличающая tengine от сотен подобных поделок — не совсем стандартная идеология:

  • архитектура проекта делает упор на минимизацию использования динамической памяти. Если память и выделяется, она выделяется исключительно на инициализации подсистем
  • использовать динамическую память нужно так, как будто не существует операционной системы, постоянно помнить о фрагментации. Удаление памяти происходит в строго обратном порядке создания (за этом следит простой механизм контроля удаляемых указателей)
  • использование сторонних библиотек сведено к минимуму и должно быть аргументировано, зачастую это потенциальный источник фрагментации памяти
  • игровая сцена представляет собою готовую для использования память, сгенерированная редактором уровней
  • работа с объектами сцены игры ведется исключительно через идентификаторы, динамически создать объект невозможно
  • использование fixed point вместо float
  • мультиплатформенность
  • официальный язык проекта — си

Читать полностью »

Здравствуйте, уважемые читатели!
Недавно, читая хабр, я увидел статью об Android NDK и OpenAL. А в комментариях был задан вопрос о OpenSL ES. Тогда у меня и родилась мысль написать статью об этой библиотеке. Я занимался этой темой, когда мне понадобилось добавить звуки и музыку в игру под Android, написанную на C++, под NDK. Статья не претендует на полноту, здесь будут лишь основы.

Содержание:

  1. Краткое описание структур OpenSL ES
  2. Инициализация механизма библиотеки и создание объекта для работы с динамиками
  3. Проигрывание PCM(wav)
  4. Проигрывание MP3, OGG
  5. Заключение

Читать полностью »

Вступление

Используя порт Qt для Android я наткнулся на проблему работы со звуком. На данный момент QtMultimediaKit для Android не работает. Проблема связана с банальной нехваткой либы FFmpeg, но багу фиксить не спешат, т.к. у комьюнити пока другие приоритеты. Разбираться, как работает Necessitas мне абсолютно не хотелось, да и нашелся человек в списках рассылки, который проделал необходимую работу, но почему-то не поделился результатами своего труда. Я написал ему письмо, но ответа к сожалению не последовало. Ну и ладно, подумал я… И тут на одном из форумов наткнулся на предложение использовать OpenSL ES, который появился в Android начиная с версии 2.3. Скажу сразу, что у меня ничего путного не получилось. Что такое OpenSL ES я до этого не знал. А значит, надо заполнять пробелы в знаниях. Тем более повод есть.

Назвать OpenSL ES библиотекой у меня даже как-то язык не поворачивается. Это скорее спецификация для 2D и 3D аудио на языке Си. Первый взгляд на API привел меня в ужас. Все показалось каким-то мрачным и запутанным. Но, как говорится, не все то золото, что блестит. Позже, пытаясь реализовать QAndroidMediaPlayer, я проникся духом “библиотеки” и первое мнение рассеялось в пух и прах.
Читать полностью »


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js