AR/getSoundWaveData: Difference between revisions

From Multi Theft Auto: Wiki
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|
This function gets the wave form data for an audio stream which is a table of floats representing the current audio frame as a wave.
هذه الوظيفة تجلب الموجة من المعلومات  للصوت البث  عبارة عن جدول [[float]] يمثل الإطار الصوتي الحالي كموجة.
This allows things like visualisations.
هذا يتيح اشياء مثل التصورات.
}}
}}
{{New_feature|3.0139|1.3.2|
{{New_feature|3.0139|1.3.2|
If the element is a player, this function will use the players voice.
اذا كان العنصر الاعب تقوم الوظيفة بأستخادم صوت الاعبيين.
}}
}}
==Syntax==  
==تركيب الوظيفة==  
<syntaxhighlight lang="lua">table getSoundWaveData ( element sound, int iSamples )</syntaxhighlight>  
<syntaxhighlight lang="lua">table getSoundWaveData ( element sound, int iSamples )</syntaxhighlight>  


===Required Arguments===  
===الفرغات المطلوبة===  
*'''sound:''' A sound element that is created using [[playSound]] or [[playSound3D]]. Streams are also supported
*'''الصوت:''' عنصر الصوت المصنوع ب [[playSound]] او [[playSound3D]]. البث ايضا مدعوم
*'''iSamples:''' Allowed samples are 128, 256, 512, 1024, 2048, 4096, 8192 and 16384 and determine how many samples to return from the currently playing audio
*'''عينات:'''العينات المتاحة 128, 256, 512, 1024, 2048, 4096, 8192 و 16384 وتحديد عدد العينات التي ستحصل عليها من الصوت الذي يتم تشغيله حاليًا


===Returns===
===المعطيات===
Returns a table of floats representing the current audio frame waveform.
*تعطي جدول من  [[float]] تمثل اطار الصوت الحالي
Returns false if the sound is not playing yet or hasn't buffered in the
*تعطي false اذا لم يعمل الصوت او لم يتم التخزين المؤقت في حالة البث
case of streams.


==Example==  
==مثال==  
هذا المثال يقوم بتشغيل صوت وجلب معلومات موجة الصوت ويقوب بأخراج نص في الدردشة بلمعلومات
<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) -- returns table
     local data = getSoundWaveData(sound, 512) -- يعطي جدول
     for i, v in pairs(data) do
     for i, v in pairs(data) do
         outputChatBox(v) -- outputs the float representing the current audio frame waveform
         outputChatBox(v) -- اخراج نص في الدردشة ب اطار موجة الصوت الحالي
     end
     end
end
end
)
)
</syntaxhighlight>
</syntaxhighlight>
</section>


==Changelog==
يقوم هذا المثال بإنشاء متصور صوت في الزاوية اليسرى العلوية من الشاشة.
{{ChangelogHeader}}
<section name="Client" class="client" show="true">
{{ChangelogItem|1.3.2|Added player element to use a players voice}}
<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 [-]
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 اضافة عنصر الاعب لاستخدام صوتة

أنظر أيضاً