سؤال

ولقد بنيت التطبيق الذي يلعب الكثير من الأصوات الطريق السهل:

AudioServicesPlaySystemSound(someSoundID);

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

هل هناك طريقة سهلة لتجاوز هذا الواقع وتغيير حجم التطبيق الخاص بي؟

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

المحلول

ولقد وجدت الحل لما اعتقدت أن تكون مشكلة شائعة. حتى هنا هو كيف التطبيق الخاص بك يمكن أن يكون حجم الخاصة بها، ولا تعبث مع صوت الجرس للمستخدم، حتى لو كنت تلعب فقط الأصوات كما صوتية النظام.

لديك لاستيراد إطار AVFoundation وفي كائن أن يبقى تحميلها طوال الوقت يعمل لديك التطبيق (أو رأي، أو مندوب التطبيق) لديك تهيئة AVAudioPlayer، وإعطائها ملف للعب وتعيينها إلى "prepareToPlay "ذلك ...

وهذا هو ما فعلته في حياتي مشاهدة الرئيسي (الذي يستخدم لتحميل وجهات النظر الأخرى كما subviews): في ملف الرأس:

#import <AVFoundation/AVFoundation.h>

@interface MainViewController : UIViewController {
    AVAudioPlayer *volumeOverridePlayer;
}

@property (nonatomic, retain) AVAudioPlayer *volumeOverridePlayer;

في ملف التنفيذ:

    @synthesize volumeOverridePlayer;

- (void)viewDidLoad
{
    [super viewDidLoad];

    volumeOverridePlayer = [[AVAudioPlayer alloc] initWithContentsOfURL:[NSURL URLWithString:[[NSBundle mainBundle] pathForResource:@"something" ofType:@"caf"]] error:nil];
    [volumeOverridePlayer prepareToPlay];
//...
}

ومجرد ترك لاعب على استعداد للعب الملف الخاص بك والتمتع التحكم في مستوى الصوت الخاصة بك دون الحاجة للعب الأصوات من خلال ذلك! وبطبيعة الحال، تذكر أن الإفراج عنها في dealloc.

نصائح أخرى

ومن ما أستطيع أن أرى في وثائق شركة أبل، هناك نوعان من القضايا هنا. يمكن التحكم 1. تطبيق وحجم OS / الأجهزة فقط من قبل الأجهزة / المستخدم. 2. تقوم بتشغيل لنظام الصوت. أعتقد أن يحكم نظام الصوت من قبل نظام التشغيل، لذلك كنت من الحظ هنا، إلا إذا كنت تلعب ملفات الصوت الفعلية. إذا كان يمكنك استخدام ملفات الصوت، ثم نلقي نظرة على هنا .

وحظا سعيدا!

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