سؤال

حسنا لدي مشاكل. أنا أستخدم AvaudioPlayer للعب ملف صوتي بسيط بتنسيق .caf. ما أحاول القيام به هو الحصول على زر اللعب والإيقاف المؤقت. فيما يلي عينة من iBaction بسيط لتشغيل الصوت من زر.

- (IBAction) clear {
NSString *path = [[NSBundle mainBundle] pathForResource:@"clear" ofType:@"caf"];
AVAudioPlayer* myAudio=[[AVAudioPlayer alloc] initWithContentsOfURL:[NSURL fileURLWithPath:path] error:NULL];
myAudio.delegate = self;
myAudio.volume = 1.0;
myAudio.numberOfLoops = 0;
[myAudio play]; 
}

لذلك عندما أذهب إلى الأمام وإنشاء ibaction آخر مع الطريقة ...

- (IBAction) stopaudio {
[myAudio stop];
audioPlayer.currentTime = 0;
}

أنا تجميع وأخبرني Xcode أن myaudio في إيقاف التوقف في إيقاف التشغيل غير محدد. كيف يمكنني إصلاحه حتى أكون قادرا على الوصول إلى MyAudio في iBaction آخر؟

سؤالي الثاني هو أنني أستخدم NavigationController لإعداد جدول طاولات، عندما أقوم بإجراء عملية اختيار يأخذني إلى Oiview مع زر رجعي للعودة إلى الجدول. ما أحاول القيام به هو قتل أي صوت يلعب فيه في Uiview عندما أعود إلى الجدول ". الرمز أعلاه هو جزء من التعليمات البرمجية التي سأقدمها في Uiview.

أيضا سؤال سريع واحد. دعنا نقول أن لدي ملف صوتي طويل طويل. النقر فوق اللعب مرة أخرى سوف تتداخل مثيل جديد من هذا الصوت قبل أن يتم تشغيل المثيل القديم. كيف يمكنني التحقق لمعرفة ما إذا كان MyAudio يلعب وعدم السماح ليتم تشغيله مرة أخرى حتى يتم إنهاء Myaudio؟

شكرا!

هل كانت مفيدة؟

المحلول

بادئ ذي بدء، يجب عليك قراءة الوثائق. سوف يزيل كل أسئلتك تقريبا. ومع ذلك، يمكن الوصول إلى مثيل Avaudioplayer من جميع طرق فصلك، يجب عليك تحديده في ملف .h. لإيقاف المشغل الخاص بك عند العودة إلى الشاشة السابقة، اتصل [myAudio stop] في الخاص بك viewWillDisappear:(BOOL)animated طريقة. حول سؤالك الأخير. إذا حددت myAudio في ملف .h الخاص بك، ستتمكن من التحقق مما إذا كان الأمر كذلك باللون الآن. smth مثل

- (IBAction) clear {
    if(![myAudio isPlaying]){
        [myAudio play]; 
    }

}

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top