እ.ኤ.አ. miniaudio፣ በ C የተፃፈ እና በሕዝብ ጎራ ውስጥ ተሰራጭቷል።
miniaudio ዊንዶውስ፣ ማክሮስ፣ ሊኑክስ፣ ቢኤስዲ፣ አይኦኤስ፣ አንድሮይድ እና ድር (በEmscripten በኩል) ጨምሮ በሁሉም ዋና ዋና የዴስክቶፕ እና የሞባይል መድረኮች ይሰራል።
ቤተ መፃህፍቱ አብሮገነብ ዲኮደሮች (WAV፣ MP3 እና FLAC)፣ የላቀ ቅልቅል እና ተፅእኖ ሂደት (3Dን ጨምሮ)፣ የንብረት አስተዳደር፣ ማጣሪያዎች፣ የውሂብ ልወጣ እና ሌሎችም ያለው ቀላል፣ ተለዋዋጭ እና ሞዱል ኤፒአይ አለው።
ዋና ለውጦች፡-
- ከስሪት 0.12 ጀምሮ፣ ሚኒአውዲዮ ነጠላውን የራስጌ ፋይል በመተው ወደተለየ ጥንድ .c/h ፋይሎች ይንቀሳቀሳል። ለዚህ ለመዘጋጀት የ miniaudio.c ፋይል ወደ ማከማቻው ታክሏል። በአሁኑ ጊዜ በ miniaudio.h እና MINIAUDIO_IMPLEMENTATION ዙሪያ መጠቅለያ ነው። በ miniaudio.h ውስጥ ምንም የተለወጠ ነገር የለም፣ ነገር ግን ስሪት 0.12 ሲወጣ፣ ለማጠናቀር miniaudio.c መጠቀም ያስፈልግዎታል። MINIAUDIO_IMPLEMENTATIONን በመጠቀም ወደ miniaudio.c መሸጋገር መጀመር ይመከራል። ፕሮጀክትህን እንደ አንድ የማጠናቀር አሃድ መገንባቱን መቀጠል ከፈለግክ "miniaudio.c"ን # ማካተት ትችላለህ። ይህ ዘዴ በስሪት 0.12 እና ከዚያ በላይ ይደገፋል።
- በተጨማሪ ማውጫ ውስጥ ያሉት miniaudio_libvorbis.h እና miniaudio_libopus.h ፋይሎች ተቋርጠዋል። አሁን በ extras/decoders ማውጫ ውስጥ ወደተለየ .c እና .h ፋይሎች ተከፍለዋል። አሮጌዎቹ ፋይሎች ለተኳሃኝነት አሁንም አሉ፣ ነገር ግን ወደ አዲሱ ስሪቶች ማሻሻል ያስፈልግዎታል። ሽግግሩ ቀላል መሆን አለበት.
- የታከሉ አማራጮች MA_SOUND_FLAG_LOOPING እና MA_RESOURCE_MANAGER_DATA_SOURCE_FLAG_LOOPING። በነባሪነት ድምጾችን እና በንብረት ላይ የተመሰረቱ የውሂብ ምንጮችን ለማስጀመር ጥቅም ላይ ሊውሉ ይችላሉ። ክሮች መዞርን ለማንቃት ይህ የሚመከር መንገድ ነው። በ ma_sound_config እና ma_resource_manager_data_source_config ውስጥ ያለው የ isLooping ውቅር አማራጮች ተቋርጠዋል። እየተጠቀሙባቸው ከሆነ, ወደ አዲሱ አማራጮች ማሻሻል አለብዎት, አለበለዚያ ወደ የወደፊት ስሪት ሲያሻሽሉ የአቀናባሪ ስህተቶችን ያገኛሉ.
- ma_rb_commit_read()፣ ma_rb_commit_write()፣ ma_pcm_rb_commit_read() እና ma_pcm_rb_commit_write() ከአሁን በኋላ MA_AT_END አይመለሱም። የዚህ ለውጥ ምክንያቱ በቀለበት ቋት ውስጥ "መጨረሻ" የሚል ጽንሰ-ሐሳብ ባለመኖሩ ነው, ይህም የውጤት ኮድ ግልጽ እንዲሆን አድርጎታል. በተጨማሪም፣ እነዚህ ተግባራት ክዋኔው በተሳካ ሁኔታ ቢጠናቀቅም ከ MA_SUCCESS ውጪ የሆነ ነገር ሊመልሱ ይችላሉ፣ ይህም ግራ መጋባትን ይጨምራል። በቀለበት ቋት ውስጥ አሁንም ቦታ እንዳለ ለማረጋገጥ ትክክለኛው መንገድ በrb_acquire_read/write() ተግባራት የተመለሰውን የፍሬም ቆጣሪ መመልከት ነው።
- የ ma_pcm_rb ዳታ ምንጭ አተገባበር ተለውጧል ስለዚህ ጥያቄውን ለማሟላት በቂ መረጃ በቀለበት ቋት ውስጥ ከሌለ ውጤቱ በፀጥታ ይሞላል። ይህ ማለት ma_data_source_read_pcm_frames() ለ ma_pcm_rb ከጠየቁት ያነሱ ፍሬሞችን መመለስ የለበትም፣ እና ስለዚህ MA_AT_END በጭራሽ አይመለስም፣ ይህ ማለት የፍጻሜ ፅንሰ-ሀሳብ ስለሌለው ክብ ቋት ምንም ትርጉም የለውም። ይህ ለውጥ የቀለበት ቋት እንደ ma_sound የውሂብ ምንጭ መጠቀምን በጣም ቀላል ማድረግ አለበት።
- ከክፈፎች() የ ma_calculate_buffer_size_in_milliseconds_of_frames() ተግባር ላይ ትንሽ ለውጥ ተደርገዋል ይህም እሴት ወደ ቅርብ ኢንቲጀር ይመልሳል።
- የዲኮደር አጀማመር ካልተሳካ፣ ልክ እንደበፊቱ ስህተቱ ምንም ይሁን ምን፣ ያጋጠመው የመጀመሪያው የስህተት ኮድ አሁን ተመልሷል፣ ከ MA_NO_BACKEND ይልቅ።
- የመሳሪያ መታወቂያዎችን ለማነጻጸር የ ma_device_id_equal() ተግባር ታክሏል።
- ለMA_NO_RUNTIME_LINKING ድጋፍ ወደ AAudio backend ታክሏል።
- ሰነድ ተዘምኗል።
- የተገኙት ስህተቶች ተስተካክለዋል.
ምንጭ: linux.org.ru
