Gibt es eine einfache Möglichkeit, eine MP3-Datei von Kakao zu laden, zu spielen und zu kontrollieren? Ich habe versucht, es zu googeln, aber wie alle Dinge Apple, bekomme ich chaotische Ergebnisse und habe keine Ahnung, wo ich anfangen soll. Wie ich verstehe, gibt es und NSSound, aber es hat viele Einschränkungen und dann gibt es CoreAudio, aber es ist sehr schwierig. Kann mir also jemand eine richtige Richtung geben? Vielen Dank.Kakao ein mp3 spielen
Antwort
AUFERSTEHUNG IN PROGRESS:
Warum diese Frage wieder aufleben lassen? weil Googeln "Kakao mp3 spielen" bringt mich hier, und es gibt keine tolle 2012 Antwort. Also, hier ist die tolle 2012 Antwort;)
Verwenden AVFoundation! Laut Apple wurde es mit Mac OS X Lion integriert (denke ich), also .. Hier ist, wie man mp3 schmerzlos spielt:
1- Link das AVFoundation Framework.
2- Import es überall dort, wo Sie Ihre ehrfürchtig mp3
#import <AVFoundation/AVFoundation.h>
3- Fügen Sie eine Audioplayer Instanzvariable spielen wollen um den Ton zu spielen (Das ist, wie ich es tun, zumindest)
@interface WCMainWindow : ... {
...
AVAudioPlayer* audioPlayer;
}
4- In Sie init, stellen Sie sicher, dass Sie Ihre Audioplayer initialisieren:
NSString* path = [[NSBundle mainBundle] pathForResource:@"myFile" ofType:@"mp3"];
NSURL* file = [NSURL fileURLWithPath:path];
// thanks @gebirgsbaerbel
audioPlayer = [[AVAudioPlayer alloc] initWithContentsOfURL:file error:nil];
[audioPlayer prepareToPlay];
5- Spielen Sie Ihre ehrfürchtige Mp3 !!
if ([audioPlayer isPlaying]) {
[audioPlayer pause];
} else {
[audioPlayer play];
}
Schließlich geht Kredit this guy.
Wie testen Sie, ob Sie das verwenden können? – Mark
Was meinst du? Gehen Sie die beschriebenen Schritte durch und stellen Sie sicher, dass Sie Ihren Ressourcen eine MP3-Datei hinzufügen. Fügen Sie dann eine Schaltfläche (Aktion) hinzu, die '[audioPlayer play]' ' – Mazyod
aufruft. Die Methode URLWithString gab immer nil für mich zurück. Mit '[NSURL fileURLWithPath: [[NSBundle mainBundle] pathForResource: @" myFile "vonTyp: @" mp3 "]];' wurde das Problem behoben. –
Ich habe einen Rahmen in C++ geschrieben, die helfen können: http://github.com/sbooth/SFBAudioEngine
Es unterstützt mehrere Audioformate und hat eine ziemlich gutartige API und kommt mit einer Kakao-Probe.
Wenn Sie nicht an Frameworks von Drittanbietern interessiert sind, würden Sie wahrscheinlich eine AudioQueue verwenden, um sich um die Wiedergabe zu kümmern. Um dies zu tun, würden Sie wahrscheinlich AudioFile verwenden, um die MP3- und AudioQueue für die Wiedergabe zu dekodieren. Apple hat ein Beispiel unter http://developer.apple.com/mac/library/samplecode/AudioQueueTools/Introduction/Intro.html
Neben NSSound
können Sie QTMovieView
betrachten. Es klingt seltsam, aber Sie können ein verstecktes QTMovieView
in Ihrem Fenster haben und es benutzen, um einen MP3 zu spielen.
Hinzugefügt: QTMovieView
ist veraltet ab OS 10.9. Wenn Sie also keine OS-Versionen vor 10.7 (wenn AVFoundation auf den Mac kam) unterstützen müssen, sollten Sie dies wahrscheinlich nicht verwenden.
Ich habe auch Beispiele mit QTKit ohne Ansichten gesehen, aber ich bin mir nicht sicher, ob dies eine gute Möglichkeit ist, es zu tun, da ich nicht gefunden habe, wie man eine Datei sucht oder vielleicht fügen Sie später sogar einige Effekte hinzu. – Marius
Ich bin mir nicht sicher, was du mit "suche eine Datei" meinst. – JWWalker
Nun, in einfacheren Worten, gehen Sie zu einer bestimmten Position und spielen von dort weiter. – Marius
Verwenden Sie NSSound.
Sie haben nicht angegeben, was Sie mit "vielen Einschränkungen" meinen, also weiß ich nicht, warum das nicht für Sie funktioniert. Beachten Sie, dass es seit Leopard wesentlich weniger Einschränkungen gibt. Sie können jetzt beispielsweise auf jedem Gerät spielen.
#import <Cocoa/Cocoa.h>
#import <QTKit/QTKit.h>
@interface SoundPlayer : NSObject {
NSSound *sound;
IBOutlet NSWindow *window;
IBOutlet NSSlider *progress;
BOOL loop;
}
- (IBAction)open: (id)sender;
- (IBAction)setLoop: (id)sender;
- (IBAction)play: (id)sender;
- (IBAction)stop: (id)sender;
- (IBAction)takeCurrentTimeFrom: (id)sender;
@end
#import "SoundPlayer.h"
@implementation SoundPlayer
- (IBAction)open: (id)sender
{
NSOpenPanel *openPanel = [NSOpenPanel openPanel];
[openPanel runModalForTypes: [NSArray arrayWithObjects: @"aiff", @"mp3", @"m4a", nil]];
[sound release];
sound = [[QTMovie movieWithFile: [openPanel filename]
error: NULL] retain];
[sound setAttribute: [NSNumber numberWithBool: loop]
forKey: QTMovieLoopsAttribute];
[window setTitle: [[openPanel filename] lastPathComponent]];
}
- (IBAction)setLoop: (id)sender
{
loop = ([sender state] == NSOnState);
[sound setAttribute: [NSNumber numberWithBool: loop]
forKey: QTMovieLoopsAttribute];
}
- (IBAction)play: (id)sender
{
NSTimeInterval duration;
QTGetTimeInterval([sound duration], &duration);
[progress setMaxValue: duration];
[NSTimer scheduledTimerWithTimeInterval: 0.1
target: self
selector: @selector(updateIndicator:)
userInfo: sound
repeats: YES];
[sound play];
}
- (void)updateIndicator: (NSTimer*)aTimer
{
QTMovie *playingSound = [aTimer userInfo];
if (!(sound == playingSound && ([sound rate] != 0)))
{
[aTimer invalidate];
return;
}
NSTimeInterval currentTime;
QTGetTimeInterval([sound currentTime], ¤tTime);
[progress setDoubleValue: currentTime];
}
- (IBAction)stop: (id)sender
{
[sound stop];
}
- (IBAction)takeCurrentTimeFrom: (id)sender
{
[sound setCurrentTime: QTMakeTimeWithTimeInterval([sender doubleValue])];
}
@end
- 1. Wie mp3 spielen von URL
- 2. Android MediaPlayer spielen MP3 aus dem Dienst
- 3. Machen Sie eine MP3-Datei kontinuierlich spielen
- 4. Android mp3-Datei herunterladen und spielen
- 5. kann nicht mp3-Datei in C# spielen
- 6. Phonegap herunterladen/entpacken Probleme mit mp3 spielen
- 7. kann mp3 nicht mit Mediaplayer android spielen
- 8. Cocoa: Informationen zu erhalten und einen mp3
- 9. Einfachste Möglichkeit, MP3 von Visual C++ zu spielen
- 10. Richtiger Weg, einfach eine mp3-Sounds als Benachrichtigung zu spielen
- 11. So spielen Sie lokale MP3-Dateien mit MediaElement
- 12. Konkatinierte MP3-Dateien durch Flash mit as3 spielen
- 13. Versuchen Sie, MP3-Audiodatei mit NAudio zu spielen
- 14. kann nicht mp3-Dateien in Android-Entwicklung spielen
- 15. ich nicht mp3-Datei AVAudioPlayer mit spielen kann
- 16. Phonegap App mp3 mit Media-Plugin spielen nicht
- 17. ein MP3-Metadaten
- 18. Migrate Kakao Touch-Projekt Kakao
- 19. iphone Kakao: Wie man ein Bild entlang eines Pfades zieht
- 20. MP3-Schnipsel auf s3
- 21. C# und mp3 ein-/ausblenden
- 22. Hide ein Fenster in Kakao von watchFromNib
- 23. Kakao: Wie öffne ich ein geschlossenes Fenster?
- 24. Kakao: Wie macht man ein Steuerelement unsichtbar?
- 25. J2ME MP3-Player - Wiedergabe von MP3-Dateien in Schleife
- 26. Wiederholung spielen automatisch
- 27. Zeitmessung? - Kakao
- 28. mp3 player mit winmm, ereignis mp3 ende
- 29. Sound Spielen nach jquery
- 30. Spielen Sie mehrere Sounds gleichzeitig
Entschuldigung, entwickeln Sie für iOS oder Mac? – shosti
Ja, tut mir leid, habe vergessen zu klären: AVAudioPlayer funktioniert nicht: Ich entwickle für OSX – Marius
Ab Mac OS X 10.7 Lion (möglicherweise sogar 10.6.8?) Funktioniert AVFoundation! Also, AVAudioPlayer .. Siehe Antwort unten .. – Mazyod