मैं जावा में एक संगीत विजुअलाइज़र पर काम कर रहा हूं लेकिन मैं "एमएक वैचारिक मुद्दे में चल रहा है जिसमें मुझे परेशानी हो रही है। मेरा प्रोग्राम सफलतापूर्वक ऑडियो पढ़ता है, और मैंने गणितीय परिचालन / ड्राइंग कार्यों का पता लगाया है, लेकिन मेरी समस्या यह पता लग रही है कि मेरे तरीके कैसे तैयार किए गए हैं जैसे कि मेरे प्रोग्राम आकर्षित करते हैं दृश्य जबकि ऑडियो बजाता है।
यह ऑडियो में पढ़ने के लिए मेरे कोड का एक स्निपेट है (एक लाइन बनने के बाद, और ऑडियो इनपुट सिस्टम, जिसे एआईएस के रूप में सहेजा गया है, को GetAudioInputStream के साथ फ़ाइल पर कॉल किया गया है):
byte[] data = new byte[EXT_BUFF_SIZE];
int bytesRead =0;
while(bytesRead!= -1){
try{
bytesRead = ais.read(data,0,data.length);
}catch(IOException e){e.printStackTrace();}
if(bytesRead>0){
int bytesWritten = line.write(data,0,bytesRead);
}
}
line.drain();
line.close();
मैंने थोड़ी देर के भीतर अलग-अलग स्थानों पर अन्य कार्यों के लिए कॉल डालने का प्रयास किया है या कोई फायदा नहीं हुआ है। मैं यह भी उम्मीद कर रहा था कि शायद इसे लाइन से पहले डालें .write () काम करेगा लेकिन यह नहीं होगा।
ऐसा लगता है कि कॉल करने का एकमात्र समाधान होगापूरी चीज की बजाय फ़ाइल की वृद्धि पर पढ़ने और लिखने के कार्यों, लेकिन मुझे डर है कि यह प्लेबैक में असंतोष पैदा करेगा। यह मेरी पहली बार यहां पर पोस्ट करने के बाद पोस्टिंग है, इसलिए उम्मीद है कि मैं काफी विस्तृत था मेरे प्रश्न को समझाते हुए। यदि नहीं, तो मैं आखिरी बार कोशिश करूंगा: ऑडियो प्रोग्राम को पढ़ने के लिए कोई प्रोग्राम कैसे व्यवस्थित करेगा, फिर फ़ाइल पर अंकगणितीय परिचालन का एक गुच्छा करें, जबकि ऐसा लगता है कि दोनों एक साथ हो रहे हैं (या शायद वे दोनों थ्रेड शेड्यूलिंग का उपयोग करके एक साथ होता है या कुछ मैं काफी समझ नहीं सकता)? किसी भी और सभी मदद के लिए अग्रिम धन्यवाद!
उत्तर:
जवाब के लिए 0 № 1आप को संसाधित करने और प्ले-बैक करने में सक्षम होना चाहिएएक विशिष्ट आकार के "भाग" में ऑडियो फ़ाइल उसी तरह से आपके ऑडियो ड्राइवर ऑडियो स्ट्रीम को संसाधित करते हैं। (128, 256, 512, आदि प्रति खंड नमूने) ऑडियो नमूने के अगले खंड के लिए ऑडियो प्लेयर तैयार होने से पहले प्रति खंड अधिक नमूने का मतलब है "दृश्यता प्रसंस्करण" समय प्रति खंड। पर्याप्त दृश्य प्रसंस्करण समय और गड़बड़ मुक्त प्लेबैक के बीच एक अच्छा संतुलन खोजने के लिए आप खंड आकार के साथ प्रयोग कर सकते हैं।