Herkes, .mid
dosyalarını, program aracılığıyla bir ses biçiminde .wav
veya .mp3
biçimine dönüştürmeme yardımcı olabilir..mid dosyasını .wav veya android olarak .mp3 dosyası olarak herhangi bir ses biçimine dönüştürün mü?
.mid dosyasını .wav veya android olarak .mp3 dosyası olarak herhangi bir ses biçimine dönüştürün mü?
cevap
Doğrudan bir MediaPlayer cihazından kayıt yapmak, Mediaplayer'ı kaydedicinin ses kaynağı olarak ayarlamak için bir AudioRecorder kullanmak mümkün olduğunu düşündüm, ancak bunun yapılması için no way görünüyor. Bu yüzden, iki gerçekten temiz olmayan yol olduğunu düşündüm:
1- Cihazların çoğunda 3 kanallı 3,5 jak giriş, stereo çıkış için 2 ve mikrofon girişi için bir tane var. İhtiyacınız olan şey, üç sinyali bölen, böylece stereo çıkışı girişe, bir tür kısa devreye bağlayabileceğiniz ve mikrofon girişinden midi kaydedebileceğiniz bir kablodur. Bir ses akışı kaynağını telefona iletmek, detaylandırmak ve üçüncü bir cihaza göndermek için kullandım. Konuştuğum tel, stereo ses + video içeren RCA konektörlerine çok benzer, kulağa çılgınca geldiğini biliyorum, ama yaptığınız şeye bağlı.
2- Aslında çalarken midi kaydetmenize gerek olmadığını varsayarak, midi dosyasını okuyabilir ve ardından sesi kendiniz sentezleyebilirsiniz. Bu gerçekten zor, özellikle farklı enstrümanların sesleri ile uğraşmak zorunda kaldığında (dizeler, davullar vb), örnekleri kullanarak işi azaltabilir, belki.
Bunun beklenen cevap olmadığını biliyorum ama hiçbir şeyden daha iyi değil, bu yöntemlerden birini denemek için çok çaresizseniz bazı örnek kodlar ve bağlantılar sağlayabiliyorum.
DÜZENLEME:
Tamam, o deliydi. Başka bir yol buldum, Visualizer sınıfını kullan. Görüntüleyicinin amacı kaydetmek için PCM almak değil, ses dalgasını görselleştirmek için (şaşırtıcı bir şekilde), bu yüzden bazı kalite sorunları olabilir. Ancak PCM'yi dalga biçimine kaydedebilirsiniz, bunu yapmak için ham PCM dizisine bir başlık eklemeniz gerekir. Dalga dosya formatı için here'a bakın. Burada bir örnek, sadece bir TextView'de MediaPlayer'dan aldığımız bayt dizisini gösteriyor, ama işe yarıyor ...!
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);
}
});
}
}
Merhaba, tekrar cevap verdiğiniz için teşekkürler.Çıktıyı mikrofondan kaydedebiliriz, ancak sesi mikrofondan saklamak iyi değildir çünkü önce bir miktar bulanıklık sesi ekleyecektir ve ikincisi, eğer sesi mikrofondan kaydederken bir şey konuşuyor olsaydık, sesimiz ayrıca onunla birleştirin ... bu yüzden çıkışı kaydetmek için mikrofon kullanmıyorum. Tekrar çok teşekkürler .. Eğer herhangi bir öneriniz varsa lütfen yardım edin .. – sandeep
@sandeep edit ...! – lelloman
Merhaba, ben pcm (bayt veri) wav biçimine dönüştürmek ama çıkış mükemmel değildir.O zaman biz çalma ve ses verir midi dosyası bazı müzik veriyor.Thanks ... – sandeep
- 1. SQlite veritabanı programatik olarak Excel dosya biçimine dönüştürün Android
- 2. MP3 dosyasını zil sesi olarak ayarlama
- 3. Android PCM'den wav dosyasını wav kodlama
- 4. phonegap içinde bir ses mp3 dosyasını çalamıyor android
- 5. Paperclip ile WAV dosyası yükleyin ve hem .wav ve .mp3 sürümlerini
- 6. Bellekten wav/mp3 çalın
- 7. Nasıl herhangi bir mp3 dosyası .wav 16khz mono 16bit dönüştürmek için
- 8. Android'de şekil dosyası veya OSM dosyasını bir harita olarak görüntüleme
- 9. WAV dosyasını geri oynatın
- 10. python'da wav dosyası bölme
- 11. Python'dan bir Mac'de bir WAV veya MP3 ses dosyasının çalınması nasıl tetiklenir?
- 12. Mp3/wav çalmak ve tempo değiştirmek (ses hızı) Android için daha iyi bir yaklaşım nedir?
- 13. WAV dosyası M4A'ya nasıl dönüştürülür?
- 14. android dosyasında mp3 dosyası oynatılamıyor
- 15. Kaydedilen sesi bir formattan diğerine dönüştürün mp3'e çevir
- 16. M4a'yı MP3'e dönüştürün
- 17. iPhone Uygulaması: mp3'de ses kaydı
- 18. MP3'ten ses verileri nasıl alınır?
- 19. Ses dosyası Mp3 üzerinden nasıl çalınır
- 20. Android'de iki veya daha fazla .wav dosyası birleştirme
- 21. .wav dosyası için Php üstbilgisi ancak gömülü olarak oynatılamıyor
- 22. İndirirken mp3 dosyasını oynatın mı?
- 23. Python bir mp3 dosyasını açabilir
- 24. Cli curl dosyasını php olarak dönüştürün
- 25. Bir tarihi "YYYYMMDDHH24miSS" biçimine dönüştürün
- 26. Android, .wav ya da benzeri bir biçime dönüştürülmeden bir dizi sesi ses olarak çalabilir mi?
- 27. Akış MP3 dosyası MVC3
- 28. Python paketinin bir parçası olarak csv dosyasını eklemek mümkün mü
- 29. HTML (veya R Parlak) Ses Önbelleğe Alma
- 30. Bir Mathematica programıyla bir .wav dosyasını nasıl oynarım?
Zaten mediaplayer sınıfını denedi mi? midi dosyalarını çalabilir, belki de çıktı arabelleğini kesip bir dalga olarak saklayabilirsiniz. – lelloman
Evet, midi dosyasını oynatmak için kullandım ama nasıl kaydedeceğimi bilmiyorum? herhangi bir fikrin var mı? Midi oynamak için yazdığınız kodu – sandeep
gönderebilir misiniz? – lelloman