AR/getSoundWaveData: Difference between revisions
Jump to navigation
Jump to search
No edit summary |
No edit summary |
||
Line 2: | Line 2: | ||
{{Client function}} | {{Client function}} | ||
{{New feature/item|3.0130|1.3.0|4125| | {{New feature/item|3.0130|1.3.0|4125| | ||
هذه الوظيفة تجلب الموجة من المعلومات للصوت البث عبارة عن جدول [[float]] يمثل الإطار الصوتي الحالي كموجة. | |||
هذا يتيح اشياء مثل التصورات. | |||
}} | }} | ||
{{New_feature|3.0139|1.3.2| | {{New_feature|3.0139|1.3.2| | ||
اذا كان العنصر الاعب تقوم الوظيفة بأستخادم صوت الاعبيين. | |||
}} | }} | ||
== | ==تركيب الوظيفة== | ||
<syntaxhighlight lang="lua">table getSoundWaveData ( element sound, int iSamples )</syntaxhighlight> | <syntaxhighlight lang="lua">table getSoundWaveData ( element sound, int iSamples )</syntaxhighlight> | ||
=== | ===الفرغات المطلوبة=== | ||
*''' | *'''الصوت:''' عنصر الصوت المصنوع ب [[playSound]] او [[playSound3D]]. البث ايضا مدعوم | ||
*''' | *'''عينات:'''العينات المتاحة 128, 256, 512, 1024, 2048, 4096, 8192 و 16384 وتحديد عدد العينات التي ستحصل عليها من الصوت الذي يتم تشغيله حاليًا | ||
=== | ===المعطيات=== | ||
*تعطي جدول من [[float]] تمثل اطار الصوت الحالي | |||
*تعطي false اذا لم يعمل الصوت او لم يتم التخزين المؤقت في حالة البث | |||
== | ==مثال== | ||
هذا المثال يقوم بتشغيل صوت وجلب معلومات موجة الصوت ويقوب بأخراج نص في الدردشة بلمعلومات | |||
<section name="Client" class="client" show="true"> | |||
<syntaxhighlight lang="lua"> | <syntaxhighlight lang="lua"> | ||
addCommandHandler("playsound", | addCommandHandler("playsound", | ||
function () | function () | ||
local sound = playSound("wasted.mp3") | local sound = playSound("wasted.mp3") | ||
local data = getSoundWaveData(sound, 512) -- | local data = getSoundWaveData(sound, 512) -- يعطي جدول | ||
for i, v in pairs(data) do | for i, v in pairs(data) do | ||
outputChatBox(v) -- | outputChatBox(v) -- اخراج نص في الدردشة ب اطار موجة الصوت الحالي | ||
end | end | ||
end | end | ||
) | ) | ||
</syntaxhighlight> | </syntaxhighlight> | ||
</section> | |||
== | يقوم هذا المثال بإنشاء متصور صوت في الزاوية اليسرى العلوية من الشاشة. | ||
{{ChangelogHeader}} | <section name="Client" class="client" show="true"> | ||
{{ChangelogItem|1.3.2| | <syntaxhighlight lang="lua"> | ||
soundHandler = playSound ( "sound.wav" ) | |||
function onSoundPlayRender ( ) | |||
if ( soundHandler ) then | |||
local waveData = getSoundWaveData ( soundHandler, 256 ) | |||
if ( waveData ) then | |||
for i=0,255 do | |||
dxDrawRectangle ( i, 128, 1, waveData[i] * 128) | |||
end | |||
end | |||
end | |||
end | |||
addEventHandler ( "onClientRender", getRootElement(), onSoundPlayRender ) | |||
</syntaxhighlight> | |||
</section> | |||
ينشئ هذا المثال عارضًا صوتيًا ، ولكن مع وجود أشرطة لأسفل فقط. | |||
<section name="Client" class="client" show="true"> | |||
<syntaxhighlight lang="lua"> | |||
soundHandler = playSound ("audio.mp3") | |||
local samples = 256 | |||
function renderWave () | |||
if (isElement (soundHandler)) then | |||
local waveData = getSoundWaveData (soundHandler, samples) | |||
for i=0, samples-1 do | |||
if (waveData) then -- تجنب القيم الوهمية. | |||
dxDrawRectangle (i, 128, 1, math.abs (waveData[i]) * 128) | |||
end | |||
end | |||
end | |||
end | |||
addEventHandler ("onClientRender", root, renderWave) | |||
</syntaxhighlight> | |||
</section> | |||
ينشئ هذا المثال عارضًا صوتيًا ، ولكن مع رفع الأشرطة فقط. | |||
<section name="Client" class="client" show="true"> | |||
<syntaxhighlight lang="lua"> | |||
soundHandler = playSound ("audio.mp3") | |||
local samples = 256 | |||
function renderWave () | |||
if (isElement (soundHandler)) then | |||
local waveData = getSoundWaveData (soundHandler, samples) | |||
for i=0, samples-1 do | |||
if (waveData) then -- تجنب القيم الوهمية. | |||
dxDrawRectangle (i, 128, 1, math.abs (waveData[i]) * -128) | |||
end | |||
end | |||
end | |||
end | |||
addEventHandler ("onClientRender", root, renderWave) | |||
</syntaxhighlight> | |||
</section> | |||
ينشئ هذا المثال عارضًا صوتيًا في الزاوية اليمنى السفلية من الشاشة. | |||
<section name="Client" class="client" show="true"> | |||
<syntaxhighlight lang="lua"> | |||
soundHandler = playSound ("audio.mp3") | |||
local x, y = guiGetScreenSize () | |||
local samples = 256 | |||
function renderWave () | |||
if (isElement (soundHandler)) then | |||
local waveData = getSoundWaveData (soundHandler, samples) | |||
for i=0, samples-1 do | |||
if (waveData) then -- تجنب القيم الوهمية. | |||
dxDrawRectangle ((x-samples)+i, y-128, 1, waveData[i] * 128) | |||
end | |||
end | |||
end | |||
end | |||
addEventHandler ("onClientRender", root, renderWave) | |||
</syntaxhighlight> | |||
</section> | |||
==التغيرات== | |||
{{AR/ChangelogHeader}} | |||
{{ChangelogItem|1.3.2|اضافة عنصر الاعب لاستخدام صوتة}} | |||
==أنظر أيضاً== | ==أنظر أيضاً== | ||
{{AR/Audio_functions}} | {{AR/Audio_functions}} | ||
[[en:getSoundWaveData]] |
Revision as of 15:21, 14 June 2020
هذه الوظيفة تجلب الموجة من المعلومات للصوت البث عبارة عن جدول float يمثل الإطار الصوتي الحالي كموجة. هذا يتيح اشياء مثل التصورات. اذا كان العنصر الاعب تقوم الوظيفة بأستخادم صوت الاعبيين.
تركيب الوظيفة
table getSoundWaveData ( element sound, int iSamples )
الفرغات المطلوبة
- الصوت: عنصر الصوت المصنوع ب playSound او playSound3D. البث ايضا مدعوم
- عينات:العينات المتاحة 128, 256, 512, 1024, 2048, 4096, 8192 و 16384 وتحديد عدد العينات التي ستحصل عليها من الصوت الذي يتم تشغيله حاليًا
المعطيات
- تعطي جدول من float تمثل اطار الصوت الحالي
- تعطي false اذا لم يعمل الصوت او لم يتم التخزين المؤقت في حالة البث
مثال
هذا المثال يقوم بتشغيل صوت وجلب معلومات موجة الصوت ويقوب بأخراج نص في الدردشة بلمعلومات
Click to collapse [-]
ClientaddCommandHandler("playsound", function () local sound = playSound("wasted.mp3") local data = getSoundWaveData(sound, 512) -- يعطي جدول for i, v in pairs(data) do outputChatBox(v) -- اخراج نص في الدردشة ب اطار موجة الصوت الحالي end end )
يقوم هذا المثال بإنشاء متصور صوت في الزاوية اليسرى العلوية من الشاشة.
Click to collapse [-]
ClientsoundHandler = playSound ( "sound.wav" ) function onSoundPlayRender ( ) if ( soundHandler ) then local waveData = getSoundWaveData ( soundHandler, 256 ) if ( waveData ) then for i=0,255 do dxDrawRectangle ( i, 128, 1, waveData[i] * 128) end end end end addEventHandler ( "onClientRender", getRootElement(), onSoundPlayRender )
ينشئ هذا المثال عارضًا صوتيًا ، ولكن مع وجود أشرطة لأسفل فقط.
Click to collapse [-]
ClientsoundHandler = playSound ("audio.mp3") local samples = 256 function renderWave () if (isElement (soundHandler)) then local waveData = getSoundWaveData (soundHandler, samples) for i=0, samples-1 do if (waveData) then -- تجنب القيم الوهمية. dxDrawRectangle (i, 128, 1, math.abs (waveData[i]) * 128) end end end end addEventHandler ("onClientRender", root, renderWave)
ينشئ هذا المثال عارضًا صوتيًا ، ولكن مع رفع الأشرطة فقط.
Click to collapse [-]
ClientsoundHandler = playSound ("audio.mp3") local samples = 256 function renderWave () if (isElement (soundHandler)) then local waveData = getSoundWaveData (soundHandler, samples) for i=0, samples-1 do if (waveData) then -- تجنب القيم الوهمية. dxDrawRectangle (i, 128, 1, math.abs (waveData[i]) * -128) end end end end addEventHandler ("onClientRender", root, renderWave)
ينشئ هذا المثال عارضًا صوتيًا في الزاوية اليمنى السفلية من الشاشة.
Click to collapse [-]
ClientsoundHandler = playSound ("audio.mp3") local x, y = guiGetScreenSize () local samples = 256 function renderWave () if (isElement (soundHandler)) then local waveData = getSoundWaveData (soundHandler, samples) for i=0, samples-1 do if (waveData) then -- تجنب القيم الوهمية. dxDrawRectangle ((x-samples)+i, y-128, 1, waveData[i] * 128) end end end end addEventHandler ("onClientRender", root, renderWave)
التغيرات
الاصدار | الوصف |
---|
1.3.2 | اضافة عنصر الاعب لاستخدام صوتة |
أنظر أيضاً
- getSoundBufferLength
- getSoundEffects
- getSoundFFTData
- getSoundLength
- getSoundLevelData
- getSoundMaxDistance