Bất kỳ ai cũng có thể giúp tôi cách chuyển đổi các tệp .mid
sang bất kỳ định dạng âm thanh nào theo định dạng .wav
hoặc .mp3
theo cách lập trình.Chuyển đổi tệp .mid sang bất kỳ định dạng âm thanh nào dưới dạng tệp .wav hoặc .mp3 trong android?
Chuyển đổi tệp .mid sang bất kỳ định dạng âm thanh nào dưới dạng tệp .wav hoặc .mp3 trong android?
Trả lời
Tôi nghĩ rằng có thể sử dụng AudioRecorder để ghi trực tiếp từ MediaPlayer, đặt Mediaplayer làm nguồn âm thanh của máy ghi âm, nhưng có vẻ như có no way để thực hiện điều đó. Vì vậy, tôi nghĩ hai cách thực sự không sạch sẽ:
1- Hầu hết các thiết bị đều có giắc cắm 3,5 mm với 3 kênh, 2 cho đầu ra âm thanh nổi và một cho đầu vào micrô. Những gì bạn cần, là một cáp chia ba tín hiệu để bạn có thể kết nối đầu ra âm thanh stereo với đầu vào, trong một loại ngắn mạch và ghi lại midi từ đầu vào micrô. Tôi đã sử dụng nó để chuyển nguồn âm thanh vào điện thoại, xây dựng nó và sau đó gửi nó đến một thiết bị thứ ba. Dây tôi đang nói về là rất giống với kết nối RCA với âm thanh stereo + video, tôi biết nó âm thanh điên, nhưng nó phụ thuộc vào những gì bạn đang làm.
2- Giả sử bạn không cần ghi âm midi khi đang chơi nó, bạn có thể đọc tập tin midi và sau đó tổng hợp âm thanh cho chính mình. Điều này thực sự khó khăn, đặc biệt khi phải đối phó với âm thanh của các nhạc cụ khác nhau (dây, trống, vv), sử dụng mẫu có thể làm giảm công việc, có thể.
Tôi biết đây không phải là câu trả lời mong đợi nhưng tốt hơn là không có gì, nếu bạn quá tuyệt vọng để thử một trong những phương pháp này tôi có thể cung cấp một số mã mẫu và liên kết.
EDIT:
ok, điều đó thật điên rồ. Tôi đã tìm thấy một cách khác, sử dụng lớp học Visualizer. Mục đích của visualizer không phải là để có được PCM để ghi lại nó, nhưng (đáng ngạc nhiên) để hình dung sóng âm thanh, do đó, có thể có một số vấn đề chất lượng. Tuy nhiên, bạn có thể lưu định dạng PCM thành dạng sóng, để thực hiện, bạn phải thêm tiêu đề vào mảng PCM thô. Đối với định dạng tệp sóng, hãy xem here. Dưới đây là một ví dụ, nó chỉ cho thấy mảng byte nhận được từ MediaPlayer trong một TextView, nhưng có vẻ như nó hoạt động ...!
android.permission.RECORD_AUDIO
android.permission.MODIFY_AUDIO_SETTINGS
activity_main.xml
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
tools:context=".MainActivity" >
<Button
android:id="@+id/btn"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Play" />
<Button
android:id="@+id/btn2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Pause" />
<ScrollView
android:layout_width="fill_parent"
android:layout_height="fill_parent" >
<TextView
android:id="@+id/textview"
android:layout_width="fill_parent"
android:layout_height="wrap_content" />
</ScrollView>
MainActivity.java
package com.example.midify;
import java.util.Arrays;
import android.media.MediaPlayer;
import android.media.audiofx.Visualizer;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.app.Activity;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.TextView;
public class MainActivity extends Activity {
MediaPlayer mp;
TextView tv;
Visualizer mVisualizer;
Handler handler = new Handler() {
@Override
public void handleMessage(Message msg) {
tv.setText((String) msg.obj);
}
};
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mp = MediaPlayer.create(this, R.raw.midi);
Button btn = (Button) findViewById(R.id.btn);
Button btn2 = (Button) findViewById(R.id.btn2);
tv = (TextView) findViewById(R.id.textview);
btn.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
if (!mp.isPlaying()) {
mp.start();
init_visualizer();
}
}
});
btn2.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
if (mp.isPlaying()) {
mp.pause();
mVisualizer.release();
}
}
});
}
@Override
public void finish() {
mp.release();
mVisualizer.release();
super.finish();
}
private void PassData(byte[] data) {
String txt = Arrays.toString(data);
Message msg = handler.obtainMessage();
msg.obj = txt;
handler.sendMessage(msg);
}
public void init_visualizer() {
mVisualizer = new Visualizer(mp.getAudioSessionId());
mVisualizer.setCaptureSize(Visualizer.getCaptureSizeRange()[1]);
Visualizer.OnDataCaptureListener captureListener = new Visualizer.OnDataCaptureListener() {
@Override
public void onWaveFormDataCapture(Visualizer visualizer,
byte[] bytes, int samplingRate) {
PassData(bytes);
}
@Override
public void onFftDataCapture(Visualizer visualizer, byte[] bytes,
int samplingRate) {
}
};
mVisualizer.setDataCaptureListener(captureListener,
Visualizer.getMaxCaptureRate(), true, false);
mVisualizer.setEnabled(true);
mp.setOnCompletionListener(new MediaPlayer.OnCompletionListener() {
@Override
public void onCompletion(MediaPlayer mediaPlayer) {
mVisualizer.setEnabled(false);
}
});
}
}
Xin chào, cảm ơn bạn đã trả lời một lần nữa.Chúng tôi có thể lưu đầu ra từ micrô nhưng không tốt để lưu trữ âm thanh từ mic vì trước hết nó sẽ thêm âm thanh mờ và thứ hai là, nếu chúng tôi nói điều gì đó khi chúng tôi đang lưu âm thanh từ micrô thì giọng nói của chúng tôi sẽ cũng hợp nhất với nó .. vì vậy tôi không sử dụng mic để lưu đầu ra. Cảm ơn rất nhiều lần nữa .. nếu bạn có bất cứ gợi ý nào, xin hãy giúp .. – sandeep
@sandeep edit ...! – lelloman
Xin chào, tôi chuyển đổi pcm (byte dữ liệu) thành định dạng wav nhưng đầu ra không hoàn hảo.Đó là tạo ra âm thanh mờ và một số âm nhạc của tập tin midi khi chúng tôi chơi nó.Thanks ... – sandeep
- 1. Xuất âm thanh dưới dạng các tệp WAV
- 2. Tệp âm thanh nhỏ nhất: MP3, Ogg hoặc Wav?
- 3. Cách chuyển đổi .wav sang .mp3 bằng Java?
- 4. Chuyển đổi âm thanh G729 theo định dạng sang WAV PCM
- 5. Chuyển đổi định dạng âm thanh
- 6. Chuyển đổi wav sang mp3 - ASP.NET
- 7. Định dạng âm thanh cho ứng dụng iPhone
- 8. iOS: Định dạng tệp ghi âm âm thanh
- 9. Làm thế nào để chuyển đổi bất kỳ tập tin mp3 để .wav 16khz mono 16bit
- 10. Phát tệp MP3 được lưu trữ dưới dạng blob
- 11. Sử dụng ffmpeg chuyển đổi tệp từ một định dạng sang một định dạng khác
- 12. Giải mã định dạng âm thanh ima4
- 13. Chuyển đổi Android sang định dạng số
- 14. Làm cách nào để lưu tệp Văn bản thành giọng nói dưới định dạng .wav/.mp3 trong Bộ nhớ ngoài
- 15. Âm thanh HTML5 định dạng âm thanh nào được hỗ trợ
- 16. Phần mềm để chuyển đổi âm thanh sang MIDI
- 17. Làm thế nào để sử dụng afconvert để chuyển đổi từ .caf sang định dạng .mp3?
- 18. Định dạng âm thanh đơn giản nhất?
- 19. không thể phát tệp mp3 âm thanh trong phonegap android
- 20. Chuyển đổi tệp sang định dạng UNIX bằng Maven
- 21. Vẽ dạng sóng của tệp .wav
- 22. API nhận dạng âm thanh, SDK (Android)
- 23. Định dạng tệp âm thanh được hỗ trợ cho Chrome?
- 24. Nhận dạng âm thanh trong Android
- 25. Âm thanh thay đổi Android của bất kỳ tệp video nào
- 26. Làm cách nào để chuyển đổi giữa midi sang wav/mp3 trong C#?
- 27. chuyển đổi định dạng tiff sang jpg
- 28. Định dạng âm thanh CMSampleBuffer
- 29. Tạo hình ảnh dạng sóng từ tệp âm thanh
- 30. Chuyển đổi .m4p sang định dạng không phải DRM (mp3, ogg)
đã làm bạn đã thử các lớp MediaPlayer? nó có thể chơi các tập tin midi, có thể bạn có thể chặn bộ đệm đầu ra và lưu nó dưới dạng sóng. – lelloman
Có, tôi đã sử dụng nó để phát tệp midi nhưng tôi không biết cách lưu nó? bạn còn ý kiến nào không? – sandeep
bạn có thể đăng đoạn mã bạn viết để chơi midi không? – lelloman