SORU
28 Kasım 2010, Pazar


Nasıl ses sistemi yerleşimi MPVolumeView kullandıktan sonra geri kapatırım?

Yerel olmayan bir ses biçimi için ses çalar inşa ediyorum. Uygulamanın hiyerarşi iPod dayanmaktadır.app. UITableViewbir dizi MPVolumeView bir kullanıcı ses seviyesini değiştirmek için izin vermek için kullandığı'nin birUIView (TrackView) ekran. İlk kez kadar TrackView görünür ses düğmeleri beklendiği gibi sistem ses bindirme görüntüler donanımı kullanarak (ve istenen) değişken olur. TrackView görünür olduğunda bu donanım düğmeleri (istenen) ile ses seviyesini değiştirme MPVolumeView güncelleştirmeleri beri görünmüyor bindirmeleri.

Sorun şu: TrackView seni geri sonra system volume kaplama donanım ses düğmelerini kullanırken görünmüyor. Program aracılığıyla allocing ve TrackViewController viewWillAppear: 10 *oluşturma ve ekleme ve daha sonra serbest bırakmak ve nil-ıng TrackViewController viewWillDisappear: 12 *aynı kaldırma denedim.

Bu iPod olmaz.app. Bir zamanlar MPVolumeView bir sistem birimi içeren görünümü yedekleme donanım ses düğmelerini kullanarak ekran bindirmeleri.

Neyi kaçırıyorum?


Güncelleme 2:Bu bir ara sonra tanıttı iOS 3.2 ve 4.2 sabit olduğunu MPVolumeView bir hata gibi görünüyor.


Güncelleme:Varsayılan basit bir azalma pencere tabanlı bir uygulama olan proje, aynı davranışı sergiler yaptım. Bir MPVolumeView görünür hale geldiğinde hacim kaplamaları sistem hiçbir zaman uygulama tekrar görülür.

VolumeAppDelegate.h:

#import <UIKit/UIKit.h>
#import <MediaPlayer/MediaPlayer.h>

@interface VolumeAppDelegate : NSObject <UIApplicationDelegate> {
    UIWindow *window;
    IBOutlet UIView *volumeView;
    IBOutlet MPVolumeView *mpVolumeView;
}

@property (nonatomic, retain) IBOutlet UIWindow *window;

-(IBAction)toggleVolumeView:(id)sender;

@end

VolumeAppDelegate.m:

#import "VolumeAppDelegate.h"

@implementation VolumeAppDelegate

@synthesize window;

-(IBAction)toggleVolumeView:(id)sender{

    if (mpVolumeView == nil){
        mpVolumeView = [[MPVolumeView alloc] initWithFrame:volumeView.bounds];
        [volumeView addSubview:mpVolumeView];
    }
    else{
        [mpVolumeView removeFromSuperview];
        [mpVolumeView release];
        mpVolumeView = nil;
    }
}

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {    

    [self.window makeKeyAndVisible];
    mpVolumeView = nil;
    return YES;
}

- (void)dealloc {
    [window release];
    [super dealloc];
}

@end

Böyle büyük mükafat proje için * çerçeve Ekle ve ana pencere açmak gerekir.Interface builder içinde xib bu UİView ve UİButton İBOutlets ekleyin ve UİButton için İBAction kargaburun.

CEVAP
10 Mayıs 2012, PERŞEMBE


Bu ne yazık ki iOS önceki sürümlerinde özel çerçevesi ile ilgili bir sorun.

Ben dileğin bunun için bir çözüm yapmak için anlamak, ama kodunuzu özel çerçeve işlemek için, app onay geçmek mümkün hale neden olur.

Neyse ki, bu hata vardı bu sürüm süresi kısadır, ve bu sürüm ile dolaşımda cihazların sayısı her geçen dakika daha ince büyüyor.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • BetterCoder

    BetterCoder

    17 Aralık 2012
  • hotstrikegently

    hotstrikegen

    26 AĞUSTOS 2011
  • Māris Zaharovs

    Māris Zahar

    28 Mayıs 2008