AR/getSoundWaveData

From Multi Theft Auto: Wiki
Revision as of 23:45, 17 August 2021 by Alvesvin (talk | contribs)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

هذه الوظيفة تجلب الموجة من المعلومات للصوت البث عبارة عن جدول float يمثل الإطار الصوتي الحالي كموجة. هذا يتيح اشياء مثل التصورات. اذا كان العنصر الاعب تقوم الوظيفة بأستخادم صوت الاعبيين.

تركيب الوظيفة

table getSoundWaveData ( element sound, int iSamples )

الفرغات المطلوبة

  • الصوت: عنصر الصوت المصنوع ب playSound او playSound3D. البث ايضا مدعوم
  • عينات:العينات المتاحة 128, 256, 512, 1024, 2048, 4096, 8192 و 16384 وتحديد عدد العينات التي ستحصل عليها من الصوت الذي يتم تشغيله حاليًا

المعطيات

  • تعطي جدول من float تمثل اطار الصوت الحالي
  • تعطي false اذا لم يعمل الصوت او لم يتم التخزين المؤقت في حالة البث

مثال

هذا المثال يقوم بتشغيل صوت وجلب معلومات موجة الصوت ويقوب بأخراج نص في الدردشة بلمعلومات

Click to collapse [-]
Client
addCommandHandler("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 [-]
Client
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 )

ينشئ هذا المثال عارضًا صوتيًا ، ولكن مع وجود أشرطة لأسفل فقط.

Click to collapse [-]
Client
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)

ينشئ هذا المثال عارضًا صوتيًا ، ولكن مع رفع الأشرطة فقط.

Click to collapse [-]
Client
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)

ينشئ هذا المثال عارضًا صوتيًا في الزاوية اليمنى السفلية من الشاشة.

Click to collapse [-]
Client
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)


التغيرات

الاصدار الوصف
1.3.2 اضافة عنصر الاعب لاستخدام صوتة

أنظر أيضاً