رفتن به مطلب
  • 0

ضبط صدا در b4a


MR.B4A

سوال

من این کدهای جاوا رو از نت پیدا کردم به منظور ضبط صدا

import android.media.MediaRecorder;

public class SoundRecorder {
    private MediaRecorder mediaRecorder;

    public void startRecording(String outputFile) {
        mediaRecorder = new MediaRecorder();
        mediaRecorder.setAudioSource(MediaRecorder.AudioSource.MIC);
        mediaRecorder.setOutputFormat(MediaRecorder.OutputFormat.THREE_GPP);
        mediaRecorder.setAudioEncoder(MediaRecorder.AudioEncoder.AMR_NB);
        mediaRecorder.setOutputFile(outputFile);

        try {
            mediaRecorder.prepare();
            mediaRecorder.start();
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

    public void stopRecording() {
        if (mediaRecorder != null) {
            try {
                mediaRecorder.stop();
                mediaRecorder.release();
            } catch (Exception e) {
                e.printStackTrace();
            }
        }
    }
}

از اساتیدی که جاوا بلدن ممنون میشم بررسی کنن که آیا این کدها کار میکنه یا نه و اینکه چه طوری باید ازش توی بیسیک فور اندروید استفاده کرد؟!

لینک ارسال
به اشتراک گذاری در سایت های دیگر

3 پاسخ به این سوال تاکنون داده شده است

ارسال‌های توصیه شده

سلام

ابتدا کتابخونه های JavaObject و RuntimePermissions رو تیک بزنین. سپس توابع زیر رو به پروژه خودتون اضافه کنید:

Sub startRecording(FilePath As String)
	Dim jo As JavaObject
	jo.InitializeContext
	jo.RunMethod("startRecording",Array(FilePath))
End Sub

Sub stopRecording
	Dim jo As JavaObject
	jo.InitializeContext
	jo.RunMethod("stopRecording",Null)
End Sub

Sub IsRecording As Boolean
	Dim jo As JavaObject
	jo.InitializeContext
	Return jo.RunMethod("IsRecording",Null)
End Sub

#If java
import android.media.MediaRecorder;

private MediaRecorder mediaRecorder;
boolean mRecording = false;

public void startRecording(String outputFile) {
    mediaRecorder = new MediaRecorder();
    mediaRecorder.setAudioSource(MediaRecorder.AudioSource.MIC);
    mediaRecorder.setOutputFormat(MediaRecorder.OutputFormat.THREE_GPP);
    mediaRecorder.setAudioEncoder(MediaRecorder.AudioEncoder.AMR_NB);
    mediaRecorder.setOutputFile(outputFile);

    try {
		mRecording=true;
        mediaRecorder.prepare();
        mediaRecorder.start();
    } catch (Exception e) {
        e.printStackTrace();
    }
}

public void stopRecording() {
    if (mediaRecorder != null) {
        try {
			mRecording=false;
            mediaRecorder.stop();
            mediaRecorder.release();
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

public boolean IsRecording() {
        return mRecording;
}

#End If

در B4A به این شکل از کد جاوای شما استفاده میکنیم:

Sub Button1_Click
	If IsRecording=False Then
		
		Dim r As RuntimePermissions
		r.CheckAndRequest(r.PERMISSION_RECORD_AUDIO)
	
		Wait For Activity_PermissionResult (Permission As String, Result As Boolean)
		If Result=False Then
			ToastMessageShow("مجوز دسترسی به میکروفون داده نشد",False)
			Button1_Click
			Return
		End If
		
		startRecording(File.DirInternal&"/1.mp3")
		ToastMessageShow("شروع ضبط ...",False)
	Else
		stopRecording
		ToastMessageShow("فایل ذخیره شد، برای پخش کلیک کنید و نگه دارید",False)
	End If
End Sub

Sub Button1_LongClick
	Dim MP As MediaPlayer
	MP.Initialize2("MP")
	MP.Load(File.DirInternal, "1.mp3")
	MP.Play
End Sub

اضافه کردن کد زیر به Manifest فراموش نشود:

AddPermission(android.permission.RECORD_AUDIO)
لینک ارسال
به اشتراک گذاری در سایت های دیگر

بایگانی شده

این موضوع بایگانی و قفل شده و دیگر امکان ارسال پاسخ نیست.

  • کاربران آنلاین در این صفحه   0 کاربر

    • هیچ کاربر عضوی،در حال مشاهده این صفحه نیست.
×
×
  • اضافه کردن...