sbooth / sfbaudioengine Goto Github PK
View Code? Open in Web Editor NEWA powerhouse of audio functionality for macOS and iOS
Home Page: https://sbooth.github.io/SFBAudioEngine/
License: MIT License
A powerhouse of audio functionality for macOS and iOS
Home Page: https://sbooth.github.io/SFBAudioEngine/
License: MIT License
I have a Sony PHA-3 DAC supporting DoP input, I know I can use DoPDecoder with ASIO output to produce DoP data and send them to PHA-3, but how DoPDecoder be used with ASIO ? Please help me, Thanks!
add all framework,and i try iOS branch,it doesn't work.
log4cxx not found.
and
<FLAC/stream_decoder.h>
We submitted our app using SFBAudioEngine to the app store and got rejected because we were opening the files with read/write access instead of read-only. I poked around a bit and saw that you sent this pull request to the TagLib repo:
Are these changes included in the taglib.framework included in the Frameworks.zip file? And do the other frameworks used for reading metadata (e.g. mp4v2) open files as read/write or read-only? I think its strictly the metadata reading that's opening files as read/write. I thought it might've been audio playback as well, but I saw that FileInputSource already opens files as read-only so I don't think that could be it.
When I am trying to build lib libsndfile for iOS, I found this tool to install open source on MacOS X . Can I install libs for iOS by this tool?
I want to play an audio file from the specified time by:
_player->Play((__bridge CFURLRef)url);
_player->seekToTime(time);
but the audio always played from the very begining, but the following code works:
_player->Play((__bridge CFURLRef)url);
[NSNSThread sleepForTimeInterval:0.01];
_player->seekToTime(time);
It seems the seek operation should be fired when the audio begin to playing.
How to do this perfectly? thanks
Hey Stephen, Im not able to build the project (the tta++ lib is missing for example). I tried to add it by myself but with no success. It also seems than some frameworks provided in the download tab are not up to date so project can't build correctly. Could you update the framework package ? Thanks a lot.
As of 9b66b69 musepack was updated to r475 but it seems that this update to musepack was never reflected in the dependencies archive linked in the README. Trying to build right now results in mpc/mpcdec.h
not being found.
As of one of the recent commits (I'm not too sure exactly which one, but I would guess that it's this one: 69484f2), artwork retrieval isn't working properly. It works partially, but it only retrieves the artwork for about 20% of files that worked fine in an earlier version of SFBAudioEngine. If there's any data or audio files or anything you need, let me know.
Hi Stephen,
I believe a memory leak is caused on occasion when calling Enqueue too fast. Here's an example:
- (void)skipToPreviousTrack
{
BOOL wasPlaying = audioPlayer->IsPlaying();
audioPlayer->Stop();
audioPlayer->ClearQueuedDecoders();
// enqueue something...
if (wasPlaying)
audioPlayer->Play();
}
The problem occurs when this code is tied to a button and a user spams it with clicks. Eventually memory grows and is never released. I ran this in Instruments to find out what's going on, and here's the jist of it:
Around line 2788 in AudioPlayer.cpp, it makes a call into the audio stack to get the maximum frame count it can use. On my system, this comes back as 16131408, which is huge. Shortly after, it sets maxFrames like so...
if(!SetPropertyOnAUGraphNodes(kAudioUnitProperty_MaximumFramesPerSlice, &newMaxFrames, sizeof(newMaxFrames))) {
LOGGER_ERR("org.sbooth.AudioEngine.AudioPlayer", "SetPropertyOnAUGraphNodes (kAudioUnitProperty_MaximumFramesPerSlice) failed");
return false;
}
This then triggers a malloc in the audio unit as you can see here: http://d.pr/i/4Fu9 and here: http://d.pr/i/PZD7
Once these pile up or get backlogged, the memory never gets released and any subsequent calls to Enqueue begin to take progressively longer.
In my own copy, i've changed this so that instead of asking for the maximum, I simply set it to something reasonable (i picked 8192), and the problem is gone.
I think a proper fix would be:
UInt32 preferredFrameCount = 8192; // or something else..
... get the max from the AU ...
if (currentMaxFrames < preferredFrameCount)
preferredFrameCount = currentMaxFrames;
... set the preferredFrameCount instead of currentMaxFrames ...
This seems to be a decent solution, but there may be things going on that I don't fully grok. Lemme know what you think.
Thanks!
Brandon
Some of the class names are much too generic (AudioPlayer
, AudioDecoder
) to pollute the global namespace.
Such as album artist, etc.
Just got this bug report from a user, when SFBAudioEngine is playing audio and the user switches the sound output device from System Preferences, the audio engine doesn't switch to the new output and keeps playing on the old one. Creating a new audio player instance solves the issue, so it seems like its just failing to detect when the output device changes.
This is something I had working before (a long time ago), but it seems to have broken in a recent commit. First of all, here's the code I'm using to enqueue songs:
- (BOOL)enqueueURL:(NSURL*)url
{
AudioDecoder *decoder = AudioDecoder::CreateDecoderForURL((CFURLRef)url);
if (decoder == NULL) { return NO; }
decoder->SetRenderingStartedCallback(renderingStarted, self);
decoder->SetRenderingFinishedCallback(renderingFinished, self);
if ((_player->Enqueue(decoder)) == false) {
NSLog(@"no decoder");
delete decoder;
return NO;
}
return YES;
}
I adapted it directly from the examples, so I think it should be alright. Here's the first problem scenario
Play()
---> song plays fineStop()
, and then ClearQueuedDecoders()
Play()
---> no audio but there are no errors eitherSecond problem scenario:
Play()
---> first song starts playingSkipToNextTrack()
---> second song should start playing, but nothing happens (no audio)As mentioned earlier, this is code that worked fine before, so I'm guessing something must've broken recently.
After continuously playing several audio files(all wav files), the decoder stopped and the following info displayed in console:
: Insufficient audio in ring buffer: 488 frames available, 1024 requested
I find the ring buffer setup in audio player.cpp:
can I adjust some parameter of these to fix the problem? or may be I should do some clean up before each:
player->Play(url);
Thanks
And metadata support as well
I'm trying to compile the latest version of SFBAudioEngine from master
with the new set of Frameworks uploaded a few days ago, and I get a few compilation errors in TrueAudioDecoder.cpp
for undeclared functions here (lines 174 to 178):
tta_decoder_new((TTA_io_callback *)&callbacks);
if(0 != tta_decoder_init_get_info(&mStreamInfo)) {
tta_decoder_done();
return false;
}
When setting numerical tags such as track number, disc number, and BPM, set values are not held although the metadata object still registers as having unsaved changes. Nothing is printed in the debugger or anything, it just silently fails and the tags revert to their previous state.
This only happens with files using the extension .m4a, which includes AAC and Apple Lossless files. Non-numeric tags are unaffected and all tags can be set properly on MP3 files.
I am running Xcode 5 and OS X 10.9.
AudioDecoder
's methods for setting callbacks uses a void*
parameter for the context. This construct isn't supported under Objective-C ARC so it won't compile (I'm not talking about compiling SFBAudioEngine
under ARC, just using AudioDecoder
in my own ARC-compiled code).
Add media type/kind metadata to supported formats
Hello ,
I have issue in running this application on iphone device . It is working fine for iphone simulator but crashing on iphone 4.3 os .
I added flac file in application's resources and it is crashing at below code in AudioPlayer.cpp
/ Store the decoded audio
if(0 != framesDecoded) {
LOGGER_INFO("com.widevision.Test", "Frames->>>>" <<mFramesDecoded);
CARingBufferError result = mRingBuffer->Store(bufferList, framesDecoded, startingFrameNumber + startTime);
if(kCARingBufferError_OK != result)
LOGGER_ERR("com.wv.Test", "CARingBuffer::Store failed: " << result);
LOGGER_INFO("", "Frames--------" <<mFramesDecoded);
OSAtomicAdd64Barrier(framesDecoded, &mFramesDecoded);
}
And Here is the crash log
Feb 6 14:54:39 iPhone SimplePlayer-iOS[1852] : OpenOutput
Feb 6 14:54:40 iPhone SimplePlayer-iOS[1852] : Resetting output
Feb 6 14:54:40 iPhone SimplePlayer-iOS[1852] : Enqueuing "file://localhost/var/mobile/Applications/DC638145-12AC-47CD-8727-BCDA8AA91086/SimplePlayer-iOS.app/Track.flac"
Feb 6 14:54:40 iPhone SimplePlayer-iOS[1852] : AudioUnitSetProperty (19, kAudioUnitScope_Input) failed: -10851
Feb 6 14:54:42 iPhone SimplePlayer-iOS[1852] : Decoding starting for "file://localhost/var/mobile/Applications/DC638145-12AC-47CD-8727-BCDA8AA91086/SimplePlayer-iOS.app/Track.flac"
Feb 6 14:54:42 iPhone SimplePlayer-iOS[1852] : Decoder format: 2 ch, 44100 Hz, 'lpcm' (0x0000002c) 16-bit little-endian signed integer, deinterleaved
Feb 6 14:54:42 iPhone SimplePlayer-iOS[1852] : Decoder channel layout: kAudioChannelLayoutTag_Stereo (0x00650002)
Feb 6 14:54:42 iPhone SimplePlayer-iOS[1852] : StartOutput
Feb 6 14:54:42 iPhone SimplePlayer-iOS[1852] : Frames->>>>0
Feb 6 14:54:42 iPhone SimplePlayer-iOS[1852] : Frames--------0
Printing Frames -- >> 0
Help Please !!!
Hi,
I'm trying to compile the SFBAudioEngine framework for Mac, but it fails with these errors:
SFBAudioEngine/Metadata/MP4Metadata.cpp: In function 'void DisableMP4v2Logging()':
SFBAudioEngine/Metadata/MP4Metadata.cpp:44: error: 'MP4_LOG_NONE' was not declared in this scope
SFBAudioEngine/Metadata/MP4Metadata.cpp:44: error: 'MP4LogSetLevel' was not declared in this scope
And a million of these:
In file included from /usr/include/c++/4.2.1/istream:845,
from /usr/include/c++/4.2.1/sstream:44,
from /Users/nightition/Development/other/SFBAudioEngine/Logger.h:34,
from /Users/nightition/Development/other/SFBAudioEngine/Decoders/MonkeysAudioDecoder.cpp:41:
/usr/include/c++/4.2.1/bits/istream.tcc:123:35: error: macro "min" requires 2 arguments, but only 1 given
/usr/include/c++/4.2.1/bits/istream.tcc:124:45: error: macro "max" requires 2 arguments, but only 1 given
/usr/include/c++/4.2.1/bits/istream.tcc:143:33: error: macro "min" requires 2 arguments, but only 1 given
/usr/include/c++/4.2.1/bits/istream.tcc:144:43: error: macro "max" requires 2 arguments, but only 1 given
/usr/include/c++/4.2.1/bits/istream.tcc:438:48: error: macro "max" requires 2 arguments, but only 1 given
/usr/include/c++/4.2.1/bits/istream.tcc:441:53: error: macro "min" requires 2 arguments, but only 1 given
/usr/include/c++/4.2.1/bits/istream.tcc:449:47: error: macro "max" requires 2 arguments, but only 1 given
/usr/include/c++/4.2.1/bits/istream.tcc:489:48: error: macro "max" requires 2 arguments, but only 1 given
/usr/include/c++/4.2.1/bits/istream.tcc:493:53: error: macro "min" requires 2 arguments, but only 1 given
/usr/include/c++/4.2.1/bits/istream.tcc:501:47: error: macro "max" requires 2 arguments, but only 1 given
/usr/include/c++/4.2.1/bits/istream.tcc:507:53: error: macro "max" requires 2 arguments, but only 1 given
/usr/include/c++/4.2.1/bits/istream.tcc:806:43: error: macro "max" requires 2 arguments, but only 1 given
I first compiled all of the required frameworks myself and then realized you uploaded an archive :) It didn't help with the MP4 errors, and of course neither did it help for the template-related ones.
I'm using Xcode 4.2 on Lion. Changing between LLVM GCC 4.2 and LLVM 3.0 didn't help.
Any ideas?
Thanks,
Ivan
I am trying to add this project in new ios project . I have copied all the files in new project which are required for ios application ,
But static library libSFAudioEngine.a is not being copied in new project and I am having errors for iphone simulator but it has successfully build for iphone device.
I am having this warning
ld: warning: ignoring file /Users/Documents/ios5 Examples/FlacPlayerUniversal/opt/iphone-4.3/lib/libFLAC++.a, missing required architecture i386 in file
I have searched some post related to this error but my issue is not resolved . This error is coming when I am building project for iphone simulator and for device, it is not giving error.
I checked framework header path , header search path .Don't know how to solve this
The ctor throws an exception at line 42
I use SFBAudioEngine in my Swift project, since Swift can use C/C++ codes directly, I define a Objective C class wrapper for AudioPlayer:
#import <Foundation/Foundation.h>
@interface AudioPlayerWrapper : NSObject{
}
- (id) init;
- (void) playPause;
- (void) seekForward;
- (void) seekBackward;
- (BOOL) playURL:(NSURL *)url;
- (BOOL) isPlaying;
- (BOOL) isPaused;
- (BOOL) isStopped;
- (BOOL) stop;
@end
#import "AudioPlayerWrapper.h"
#include "AudioPlayer.h"
#include "AudioDecoder.h"
#include "Logger.h"
enum ePlayerFlags : unsigned int {
ePlayerFlagRenderingStarted = 1u << 0,
ePlayerFlagRenderingFinished = 1u << 1
};
@interface AudioPlayerWrapper(){
SFB::Audio::Player *_player;
std::atomic_uint _playerFlags;
}
@end
// AudioPlayerWrapper.m
@implementation AudioPlayerWrapper
- (id) init
{
self = [super init];
if (self){
_player = new SFB::Audio::Player();
// This will be called from the realtime rendering thread and as such MUST NOT BLOCK!!
_player->SetRenderingStartedBlock(^(const SFB::Audio::Decoder& /*decoder*/){
_playerFlags.fetch_or(ePlayerFlagRenderingStarted);
});
// This will be called from the realtime rendering thread and as such MUST NOT BLOCK!!
_player->SetRenderingFinishedBlock(^(const SFB::Audio::Decoder& /*decoder*/){
_playerFlags.fetch_or(ePlayerFlagRenderingFinished);
});
NSLog(@"player created");
asl_add_log_file(nullptr, STDERR_FILENO);
::SFB::Logger::SetCurrentLevel(::SFB::Logger::debug);
}
return self;
}
- (void) playPause
{
_player->PlayPause();
}
- (void) seekForward
{
_player->SeekForward();
}
- (void) seekBackward
{
_player->SeekBackward();
}
- (void) seek:(SInt64)position
{
SInt64 totalFrames;
if(_player->GetTotalFrames(totalFrames)) {
SInt64 desiredFrame = (SInt64)(position * totalFrames);
_player->SeekToFrame(desiredFrame);
}
}
- (BOOL) playURL:(NSURL *)url
{
if(nil == url)
return NO;
return _player->Play((__bridge CFURLRef)url);
}
.....
In Swift, play a flac audio file:
self.myAudioPlayer = AudioPlayerWrapper()
let audioFileURL = NSURL(fileURLWithPath: NSBundle.mainBundle().pathForResource("test", ofType: "flac")!)
self.myAudioPlayer!.playURL(audioFileURL)
the above code fail to play the flac file. I found the AudioDecoder is not created successfully:
do I need to register the supported audio decoder(FLAC,APE,...) before playing?
thanks!
SFBAudioEngine has HTTPInputSource, which seems can be used to play a HTTP-based audio file. I try to use the following code to play a audio file located in HTTP server:
NSURL *urlInput = [NSURL URLWithString:@"http://218.19.141.173/test.mp3"];
HTTPInputSource *is= new HTTPInputSource(reinterpret_cast<CFURLRef>(urlInput));
NSError *error;
bool r=is->Open();
NSString *mime = @"audio/mp3";
if(!r)
NSLog(@"open error");
AudioDecoder *decoder = AudioDecoder::CreateDecoderForInputSource(is,reinterpret_cast<CFStringRef>(mime));
if(nullptr == decoder)
return NO;
player->Stop();
// Register for rendering started/finished notifications so the UI can be updated properly
decoder->SetDecodingStartedCallback(decodingStarted, self);
decoder->SetRenderingStartedCallback(renderingStarted, self);
decoder->SetRenderingFinishedCallback(renderingFinished, self);
if(!decoder->Open()) {
delete decoder;
return NO;
}
if(!player->Enqueue(decoder)){
delete decoder;
return NO;
}
when running in simulator, the following error occurs:
Oct 15 20:18:21 pantekiMacBook-Pro.local Flacplayer_simple[420] : AudioUnitSetProperty (19, kAudioUnitScope_Input) failed: -10851
Oct 15 20:18:21 pantekiMacBook-Pro.local Flacplayer_simple[420] : Decoding starting for "http://218.19.141.173/test.mp3"
Oct 15 20:18:21 pantekiMacBook-Pro.local Flacplayer_simple[420] : Decoder format: 2 ch, 44100 Hz, 'lpcm' (0x00000029) 32-bit little-endian float, deinterleaved
Oct 15 20:18:21 pantekiMacBook-Pro.local Flacplayer_simple[420] : Decoder channel layout: (null)
Oct 15 20:18:21 pantekiMacBook-Pro.local Flacplayer_simple[420] : StartOutput
Oct 15 20:18:21 pantekiMacBook-Pro.local Flacplayer_simple[420] : ExtAudioFileRead failed: -50
Oct 15 20:18:21 pantekiMacBook-Pro.local Flacplayer_simple[420] : AudioConverterFillComplexBuffer failed: 1768846202
Oct 15 20:18:21 pantekiMacBook-Pro.local Flacplayer_simple[420] : Insufficient audio in ring buffer: 47 frames available, 512 requested
Oct 15 20:18:22 pantekiMacBook-Pro.local Flacplayer_simple[420] : ExtAudioFileRead failed: -50
Oct 15 20:18:22 pantekiMacBook-Pro.local Flacplayer_simple[420] : ExtAudioFileRead failed: -50
Oct 15 20:18:22 pantekiMacBook-Pro.local Flacplayer_simple[420] : Decoding finished for "http://218.19.141.173/test.mp3"
Oct 15 20:18:22 pantekiMacBook-Pro.local Flacplayer_simple[420] : StopOutput
maybe I miss something in my code ? How to play HTTP-based audio file,such as http://xxx.xxx.xxx.xxx/myaudio.flac by using SFBAudioEngine?
This is a random bug and is probably hard to track, but I thought I should let you know anyways. I'm randomly getting an EXC_BAD_ACCESS
error on line 130 of CARingBuffer.cpp (inside FetchABL()
). Here's a screenshot:
This seems to happen most often when skipping through songs quickly (basically just calling SkipToNextTrack
and enqueueing a new decoder).
libsndfile is licensed with the LGPL license, which means that strictly speaking you can't include it even in an iOS app, and you certainly can't include it in any kind of closed-source iOS app.
there is no license text included in your lib that recognises or acknowledges this. this is problematic.
please clarify this to potential end-users.
Hello,
I just use SFBAudioEngine play Monkey's Audio with the particular files and libMACLib.a . When I ran in my iPad2 , it turns out an error like the title.And then I debug the code.
The following is the error code. Can you help me to solve this error ?
Thank you very much.
AudioUnitSetProperty (kAudioUnitProperty_MaximumFramesPerSlice, kAudioUnitScope_Global) failed: -10849
Hello ,
Could you teach me how to build the audio frameworks in this project ? Just one example.
Thank you very much.
If I enqueue 3 files like so...
File 1, 44100k
File 2, 96000k
File 3, 44100k
It seems impossible to play through all 3 without writing a bunch of spaghetti code to make it work (and i haven't even managed to get that right). I can reproduce this in Decibel as well.
In both Decibel as well as my own app, the behavior is that things just stop playing after the first one finishes. I realize its not possible to do gapless playback on files w/ different sample rates due to the ring buffer needing to be recreated, but i can't seem to figure out how to work around it.
The only available hooks I have are the decoder hooks that notify me of decoding/rendering starting/stopping. Best I can tell, they aren't deterministic enough for me to be able to cobble together a solution or a workaround.
It would be nice to be able to do gapless playback when possible, yet continue to cycle through the items in the queue when its not. As with last time, I'll post any possible fix I might come up with once I have one that works.
In the following demo project, I have the audio player set up in a fashion similar to that seen in SimplePlayer. With this setup, the block set by SetRenderingFinishedBlock
will sometimes fail to fire while playback continues without issue.
In my tests, this almost always occurs after playing through the second queued song. The method of queueing (all at once or progressive) does not seem to make a difference.
Demo project: http://cl.ly/1k3f3x0Q0P3z
Hi,I can use SFBAudioEngine to play FLAC/APE music in iPhone ,but still have one problem to solve: when playing music,if the device's screen is locked, the music is stopped, when the screen is unlocked,the music can be resumed to play. I've added the UIBackgroundModes property(App plays audio) to the Info.plist file, the music can continue when the App goes to background(by press HOME key),but stopped when the screen is locked.
How to continuously play music when the iphone screen is locked? thanks!
Could you tell me how to compile lib for iOS.I had already get the SFBAudioEngine.framework for MacOS . And I had work hard on compile lib for iOS.When I set Scheme for the libSFBAudioEngine , I got the error messgae
"Command /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/libtool failed with exit code 1".
I am new to this library. I found some downloads, but especially the iOS downloads are very old. Are there any instructions to setup this library available? (I still not got it...)
Formats like FLAC, APE, etc. should allow one to get/set arbitrary tags
Hi,
Thanks for making the SFBAudioEngine available.
I'm having a problem trying to use the libSFBAudioEngine.a library in an objc app. When I try to #import some of the headers such as Audiodecoder.h I get an "unknown type name 'class'; did you mean 'Class'?" error. Can this library be easily used within a pure objc app? Is there a way to get around this issue and add these objc++ headers to an objc project.
Thanks,
Jay
I have another metadata bug report and this one seems to be in the TagLib library. Here's the strack trace:
Process: Sonora [35038]
Path: /Applications/Sonora.app/Contents/MacOS/Sonora
Identifier: com.iktm.Sonora
Version: 0.71 (0.71)
Code Type: X86-64 (Native)
Parent Process: launchd [188]
Date/Time: 2012-01-26 16:22:52.075 -0500
OS Version: Mac OS X 10.7.2 (11C74)
Report Version: 9
Crashed Thread: 5 Dispatch queue: com.apple.root.default-priority
Exception Type: EXC_ARITHMETIC (SIGFPE)
Exception Codes: EXC_I386_DIV (divide by zero)
Application Specific Information:
objc[35038]: garbage collection is OFF
......
Thread 5 Crashed:: Dispatch queue: com.apple.root.default-priority
0 org.kde.taglib 0x000000010bd22bea TagLib::RIFF::WAV::Properties::read(TagLib::ByteVector const&) + 362
1 org.kde.taglib 0x000000010bd22cb2 TagLib::RIFF::WAV::Properties::Properties(TagLib::ByteVector const&, unsigned int, TagLib::AudioProperties::ReadStyle) + 92
2 org.kde.taglib 0x000000010bd2273d TagLib::RIFF::WAV::File::read(bool, TagLib::AudioProperties::ReadStyle) + 675
3 org.kde.taglib 0x000000010bd22848 TagLib::RIFF::WAV::File::File(TagLib::IOStream*, bool, TagLib::AudioProperties::ReadStyle) + 116
4 org.sbooth.AudioEngine 0x000000010b8fae5f WAVEMetadata::ReadMetadata(__CFError**) + 153
5 org.sbooth.AudioEngine 0x000000010b8f3678 AudioMetadata::CreateMetadataForURL(__CFURL const*, __CFError**) + 754
And the offending file: http://dl.dropbox.com/u/65903/samplewav.wav. I'm using the TagLib build that's in the Frameworks.zip in SFBAudioEngine's downloads.
Instead of using SInt64
for sizes and counts (for example to Read()
UInt64
should be used
Crash log:
Thread 2 Crashed:: Dispatch queue: com.apple.root.default-priority
0 com.google.code.mp4v2 0x00000001049fb21d mp4v2::impl::itmf::Tags::fetchString(std::map<std::string, MP4ItmfItem_s*, std::less<std::string>, std::allocator<std::pair<std::string const, MP4ItmfItem_s*> > > const&, std::string const&, std::string&, char const*&) + 77
1 com.google.code.mp4v2 0x00000001049fac81 mp4v2::impl::itmf::Tags::c_fetch(MP4Tags_s*&, void*) + 1313
2 com.google.code.mp4v2 0x00000001049f0866 MP4TagsFetch + 53
3 org.sbooth.AudioEngine 0x00000001047600f7 MP4Metadata::ReadMetadata(__CFError**) + 4711
4 org.sbooth.AudioEngine 0x0000000104753d74 AudioMetadata::CreateMetadataForURL(__CFURL const*, __CFError**) + 1476
This isn't an issue with SFBAudioEngine
and I'm fairly certain that its the result of a corrupted audio file, but is there any way to make this fail cleanly without crashing?
when I play a .dsf audio file downloaded from
http://samplerateconverter.com/content/free-samples-dsf-audio-files
the following message displayed in console and the audio file could not be played:
: Format not supported: 2 ch, 2.8224e+06 Hz, 'DSD ' (0x00000020) 1 bits/channel, 1 bytes/packet, 8 frames/packet, 0 bytes/frame
May 23 00:28:53 pzsip6p SimplePlayer-iOS[607] : Could not play
does DSFDecoder require some specified format DSF audio file?
thanks!
I'm using SFBAudioEngine in my iOS8 project, to handle audio session interruption(phone call), I use following codes in my ViewController's viewDidLoad method:
AVAudioSession *session = [AVAudioSession sharedInstance];
NSError *err = nil;
[session setCategory:AVAudioSessionCategoryPlayback error:&err];
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(interruptHandler:) name:AVAudioSessionInterruptionNotification object:self];
[session setActive:YES error:&err];
......
and the interruption handler:
- (void) interruptHandler:(NSNotification *)notif
{
NSLog(@"interruptHandler");
//Check to see if it was a Begin interruption
if ([[notif.userInfo valueForKey:AVAudioSessionInterruptionTypeKey] isEqualToNumber:[NSNumber numberWithInt:AVAudioSessionInterruptionTypeBegan]]) {
NSLog(@"Interruption began!");
[self playPause:self];
} else if([[notif.userInfo valueForKey:AVAudioSessionInterruptionTypeKey] isEqualToNumber:[NSNumber numberWithInt:AVAudioSessionInterruptionTypeEnded]]){
NSLog(@"Interruption ended!");
//Resume your audio
[self playPause:self];
}
}
but when a phone call is coming, interruptHandler never get called. Any idea?
I recently updated my build of SFBAudioEngine (which was a few months old) to the most recent build from master
, that uses AttachedPicture
to retrieve artwork. It works fine for the most part, but the app seems to randomly crash every now and then while reading metadata with the following trace:
Crashed Thread: 0 Dispatch queue: com.apple.main-thread
Exception Type: EXC_BAD_ACCESS (SIGSEGV)
Exception Codes: KERN_INVALID_ADDRESS at 0x0000000000000000
VM Regions Near 0:
-->
__TEXT 0000000109063000-0000000109179000 [ 1112K] r-x/rwx SM=COW /Users/USER/*/Sonora.app/Contents/MacOS/Sonora
Application Specific Information:
objc[6881]: garbage collection is OFF
Thread 0 Crashed:: Dispatch queue: com.apple.main-thread
0 org.sbooth.AudioEngine 0x00000001092d10f8 std::__1::__tree<std::__1::pair<TagLib::ByteVector, TagLib::List<TagLib::ID3v2::Frame*> >, std::__1::__map_value_compare<TagLib::ByteVector, TagLib::List<TagLib::ID3v2::Frame*>, std::__1::less<TagLib::ByteVector>, true>, std::__1::allocator<std::__1::pair<TagLib::ByteVector, TagLib::List<TagLib::ID3v2::Frame*> > > >::__insert_node_at(std::__1::__tree_node_base<void*>*, std::__1::__tree_node_base<void*>*&, std::__1::__tree_node_base<void*>*) + 88 (__tree:1698)
1 org.sbooth.AudioEngine 0x00000001092cfefd std::__1::map<TagLib::ByteVector, TagLib::List<TagLib::ID3v2::Frame*>, std::__1::less<TagLib::ByteVector>, std::__1::allocator<std::__1::pair<TagLib::ByteVector const, TagLib::List<TagLib::ID3v2::Frame*> > > >::operator[](TagLib::ByteVector const&) + 205 (map:1276)
2 org.sbooth.AudioEngine 0x00000001092cc7d3 TagLib::Map<TagLib::ByteVector, TagLib::List<TagLib::ID3v2::Frame*> >::operator[](TagLib::ByteVector const&) const + 51 (tmap.tcc:160)
3 org.sbooth.AudioEngine 0x00000001092c9473 AddID3v2TagToDictionary(__CFDictionary*, std::__1::vector<AttachedPicture*, std::__1::allocator<AttachedPicture*> >&, TagLib::ID3v2::Tag const*) + 259 (AddID3v2TagToDictionary.cpp:55)
4 org.sbooth.AudioEngine 0x00000001092d60c4 MP3Metadata::ReadMetadata(__CFError**) + 1716 (MP3Metadata.cpp:166)
5 org.sbooth.AudioEngine 0x00000001092adac1 AudioMetadata::CreateMetadataForURL(__CFURL const*, __CFError**) + 1313 (AudioMetadata.cpp:372)
There's not much more information I have on this since it's not isolated to specific files, but let me know if there's anything else I can provide to help you resolve the issue.
In my program I'm seeing exceptions seemingly thrown at random when creating metadata objects from files. As far as I can see there's nothing that ties the files that it throws on together and it occurs rarely enough that it only shows up when processing many files in sequence (typically it only appears when processing upwards of 500 songs, but occasionally this isn't true). The tag it always triggers on is kMusicBrainzReleaseIDKey, as seen below.
I pulled and recompiled a fresh version of SFBAudioEngine and its dependencies yesterday and to the best of my knowledge, nothing is getting prematurely released in my own code, so I'm not sure what the problem could be.
Hello, I want to build it into my device and test the playback function. And then it turned out lots of duplicate errors.As follow:
duplicate symbol ___sputc in:
/Users/dzy/Library/Developer/Xcode/DerivedData/SFBAudioEngine-iOS-bdwyhfsekpyhdebhoafikbujogyp/Build/Intermediates/ArchiveIntermediates/SimplePlayer-iOS/BuildProductsPath/Release-iphoneos/libSFBAudioEngine.a(bitreader.o)
/Users/dzy/Library/Developer/Xcode/DerivedData/SFBAudioEngine-iOS-bdwyhfsekpyhdebhoafikbujogyp/Build/Intermediates/ArchiveIntermediates/SimplePlayer-iOS/BuildProductsPath/Release-iphoneos/libSFBAudioEngine.a(bitwriter.o)
duplicate symbol ___sputc in:
/Users/dzy/Library/Developer/Xcode/DerivedData/SFBAudioEngine-iOS-bdwyhfsekpyhdebhoafikbujogyp/Build/Intermediates/ArchiveIntermediates/SimplePlayer-iOS/BuildProductsPath/Release-iphoneos/libSFBAudioEngine.a(bitreader.o)
/Users/dzy/Library/Developer/Xcode/DerivedData/SFBAudioEngine-iOS-bdwyhfsekpyhdebhoafikbujogyp/Build/Intermediates/ArchiveIntermediates/SimplePlayer-iOS/BuildProductsPath/Release-iphoneos/libSFBAudioEngine.a(cpu.o)
duplicate symbol ___sputc in:
/Users/dzy/Library/Developer/Xcode/DerivedData/SFBAudioEngine-iOS-bdwyhfsekpyhdebhoafikbujogyp/Build/Intermediates/ArchiveIntermediates/SimplePlayer-iOS/BuildProductsPath/Release-iphoneos/libSFBAudioEngine.a(bitreader.o)
/Users/dzy/Library/Developer/Xcode/DerivedData/SFBAudioEngine-iOS-bdwyhfsekpyhdebhoafikbujogyp/Build/Intermediates/ArchiveIntermediates/SimplePlayer-iOS/BuildProductsPath/Release-iphoneos/libSFBAudioEngine.a(format.o)
duplicate symbol ___inline_isfinited in:
/Users/dzy/Library/Developer/Xcode/DerivedData/SFBAudioEngine-iOS-bdwyhfsekpyhdebhoafikbujogyp/Build/Intermediates/ArchiveIntermediates/SimplePlayer-iOS/BuildProductsPath/Release-iphoneos/libSFBAudioEngine.a(fixed.o)
/Users/dzy/Library/Developer/Xcode/DerivedData/SFBAudioEngine-iOS-bdwyhfsekpyhdebhoafikbujogyp/Build/Intermediates/ArchiveIntermediates/SimplePlayer-iOS/BuildProductsPath/Release-iphoneos/libSFBAudioEngine.a(lpc.o)
duplicate symbol ___inline_isfinitef in:
/Users/dzy/Library/Developer/Xcode/DerivedData/SFBAudioEngine-iOS-bdwyhfsekpyhdebhoafikbujogyp/Build/Intermediates/ArchiveIntermediates/SimplePlayer-iOS/BuildProductsPath/Release-iphoneos/libSFBAudioEngine.a(fixed.o)
/Users/dzy/Library/Developer/Xcode/DerivedData/SFBAudioEngine-iOS-bdwyhfsekpyhdebhoafikbujogyp/Build/Intermediates/ArchiveIntermediates/SimplePlayer-iOS/BuildProductsPath/Release-iphoneos/libSFBAudioEngine.a(lpc.o)
duplicate symbol ___inline_isfinitel in:
/Users/dzy/Library/Developer/Xcode/DerivedData/SFBAudioEngine-iOS-bdwyhfsekpyhdebhoafikbujogyp/Build/Intermediates/ArchiveIntermediates/SimplePlayer-iOS/BuildProductsPath/Release-iphoneos/libSFBAudioEngine.a(fixed.o)
/Users/dzy/Library/Developer/Xcode/DerivedData/SFBAudioEngine-iOS-bdwyhfsekpyhdebhoafikbujogyp/Build/Intermediates/ArchiveIntermediates/SimplePlayer-iOS/BuildProductsPath/Release-iphoneos/libSFBAudioEngine.a(lpc.o)
duplicate symbol ___inline_isinfd in:
/Users/dzy/Library/Developer/Xcode/DerivedData/SFBAudioEngine-iOS-bdwyhfsekpyhdebhoafikbujogyp/Build/Intermediates/ArchiveIntermediates/SimplePlayer-iOS/BuildProductsPath/Release-iphoneos/libSFBAudioEngine.a(fixed.o)
/Users/dzy/Library/Developer/Xcode/DerivedData/SFBAudioEngine-iOS-bdwyhfsekpyhdebhoafikbujogyp/Build/Intermediates/ArchiveIntermediates/SimplePlayer-iOS/BuildProductsPath/Release-iphoneos/libSFBAudioEngine.a(lpc.o)
duplicate symbol ___inline_isinff in:
/Users/dzy/Library/Developer/Xcode/DerivedData/SFBAudioEngine-iOS-bdwyhfsekpyhdebhoafikbujogyp/Build/Intermediates/ArchiveIntermediates/SimplePlayer-iOS/BuildProductsPath/Release-iphoneos/libSFBAudioEngine.a(fixed.o)
/Users/dzy/Library/Developer/Xcode/DerivedData/SFBAudioEngine-iOS-bdwyhfsekpyhdebhoafikbujogyp/Build/Intermediates/ArchiveIntermediates/SimplePlayer-iOS/BuildProductsPath/Release-iphoneos/libSFBAudioEngine.a(lpc.o)
duplicate symbol ___inline_isinfl in:
/Users/dzy/Library/Developer/Xcode/DerivedData/SFBAudioEngine-iOS-bdwyhfsekpyhdebhoafikbujogyp/Build/Intermediates/ArchiveIntermediates/SimplePlayer-iOS/BuildProductsPath/Release-iphoneos/libSFBAudioEngine.a(fixed.o)
/Users/dzy/Library/Developer/Xcode/DerivedData/SFBAudioEngine-iOS-bdwyhfsekpyhdebhoafikbujogyp/Build/Intermediates/ArchiveIntermediates/SimplePlayer-iOS/BuildProductsPath/Release-iphoneos/libSFBAudioEngine.a(lpc.o)
duplicate symbol ___inline_isnand in:
/Users/dzy/Library/Developer/Xcode/DerivedData/SFBAudioEngine-iOS-bdwyhfsekpyhdebhoafikbujogyp/Build/Intermediates/ArchiveIntermediates/SimplePlayer-iOS/BuildProductsPath/Release-iphoneos/libSFBAudioEngine.a(fixed.o)
/Users/dzy/Library/Developer/Xcode/DerivedData/SFBAudioEngine-iOS-bdwyhfsekpyhdebhoafikbujogyp/Build/Intermediates/ArchiveIntermediates/SimplePlayer-iOS/BuildProductsPath/Release-iphoneos/libSFBAudioEngine.a(lpc.o)
duplicate symbol ___inline_isnanf in:
/Users/dzy/Library/Developer/Xcode/DerivedData/SFBAudioEngine-iOS-bdwyhfsekpyhdebhoafikbujogyp/Build/Intermediates/ArchiveIntermediates/SimplePlayer-iOS/BuildProductsPath/Release-iphoneos/libSFBAudioEngine.a(fixed.o)
/Users/dzy/Library/Developer/Xcode/DerivedData/SFBAudioEngine-iOS-bdwyhfsekpyhdebhoafikbujogyp/Build/Intermediates/ArchiveIntermediates/SimplePlayer-iOS/BuildProductsPath/Release-iphoneos/libSFBAudioEngine.a(lpc.o)
duplicate symbol ___inline_isnanl in:
/Users/dzy/Library/Developer/Xcode/DerivedData/SFBAudioEngine-iOS-bdwyhfsekpyhdebhoafikbujogyp/Build/Intermediates/ArchiveIntermediates/SimplePlayer-iOS/BuildProductsPath/Release-iphoneos/libSFBAudioEngine.a(fixed.o)
/Users/dzy/Library/Developer/Xcode/DerivedData/SFBAudioEngine-iOS-bdwyhfsekpyhdebhoafikbujogyp/Build/Intermediates/ArchiveIntermediates/SimplePlayer-iOS/BuildProductsPath/Release-iphoneos/libSFBAudioEngine.a(lpc.o)
duplicate symbol ___inline_isnormald in:
/Users/dzy/Library/Developer/Xcode/DerivedData/SFBAudioEngine-iOS-bdwyhfsekpyhdebhoafikbujogyp/Build/Intermediates/ArchiveIntermediates/SimplePlayer-iOS/BuildProductsPath/Release-iphoneos/libSFBAudioEngine.a(fixed.o)
/Users/dzy/Library/Developer/Xcode/DerivedData/SFBAudioEngine-iOS-bdwyhfsekpyhdebhoafikbujogyp/Build/Intermediates/ArchiveIntermediates/SimplePlayer-iOS/BuildProductsPath/Release-iphoneos/libSFBAudioEngine.a(lpc.o)
duplicate symbol ___inline_isnormalf in:
/Users/dzy/Library/Developer/Xcode/DerivedData/SFBAudioEngine-iOS-bdwyhfsekpyhdebhoafikbujogyp/Build/Intermediates/ArchiveIntermediates/SimplePlayer-iOS/BuildProductsPath/Release-iphoneos/libSFBAudioEngine.a(fixed.o)
/Users/dzy/Library/Developer/Xcode/DerivedData/SFBAudioEngine-iOS-bdwyhfsekpyhdebhoafikbujogyp/Build/Intermediates/ArchiveIntermediates/SimplePlayer-iOS/BuildProductsPath/Release-iphoneos/libSFBAudioEngine.a(lpc.o)
duplicate symbol ___inline_isnormall in:
/Users/dzy/Library/Developer/Xcode/DerivedData/SFBAudioEngine-iOS-bdwyhfsekpyhdebhoafikbujogyp/Build/Intermediates/ArchiveIntermediates/SimplePlayer-iOS/BuildProductsPath/Release-iphoneos/libSFBAudioEngine.a(fixed.o)
/Users/dzy/Library/Developer/Xcode/DerivedData/SFBAudioEngine-iOS-bdwyhfsekpyhdebhoafikbujogyp/Build/Intermediates/ArchiveIntermediates/SimplePlayer-iOS/BuildProductsPath/Release-iphoneos/libSFBAudioEngine.a(lpc.o)
duplicate symbol ___inline_signbitd in:
/Users/dzy/Library/Developer/Xcode/DerivedData/SFBAudioEngine-iOS-bdwyhfsekpyhdebhoafikbujogyp/Build/Intermediates/ArchiveIntermediates/SimplePlayer-iOS/BuildProductsPath/Release-iphoneos/libSFBAudioEngine.a(fixed.o)
/Users/dzy/Library/Developer/Xcode/DerivedData/SFBAudioEngine-iOS-bdwyhfsekpyhdebhoafikbujogyp/Build/Intermediates/ArchiveIntermediates/SimplePlayer-iOS/BuildProductsPath/Release-iphoneos/libSFBAudioEngine.a(lpc.o)
duplicate symbol ___inline_signbitf in:
/Users/dzy/Library/Developer/Xcode/DerivedData/SFBAudioEngine-iOS-bdwyhfsekpyhdebhoafikbujogyp/Build/Intermediates/ArchiveIntermediates/SimplePlayer-iOS/BuildProductsPath/Release-iphoneos/libSFBAudioEngine.a(fixed.o)
/Users/dzy/Library/Developer/Xcode/DerivedData/SFBAudioEngine-iOS-bdwyhfsekpyhdebhoafikbujogyp/Build/Intermediates/ArchiveIntermediates/SimplePlayer-iOS/BuildProductsPath/Release-iphoneos/libSFBAudioEngine.a(lpc.o)
duplicate symbol ___inline_signbitl in:
/Users/dzy/Library/Developer/Xcode/DerivedData/SFBAudioEngine-iOS-bdwyhfsekpyhdebhoafikbujogyp/Build/Intermediates/ArchiveIntermediates/SimplePlayer-iOS/BuildProductsPath/Release-iphoneos/libSFBAudioEngine.a(fixed.o)
/Users/dzy/Library/Developer/Xcode/DerivedData/SFBAudioEngine-iOS-bdwyhfsekpyhdebhoafikbujogyp/Build/Intermediates/ArchiveIntermediates/SimplePlayer-iOS/BuildProductsPath/Release-iphoneos/libSFBAudioEngine.a(lpc.o)
duplicate symbol ___sincos in:
/Users/dzy/Library/Developer/Xcode/DerivedData/SFBAudioEngine-iOS-bdwyhfsekpyhdebhoafikbujogyp/Build/Intermediates/ArchiveIntermediates/SimplePlayer-iOS/BuildProductsPath/Release-iphoneos/libSFBAudioEngine.a(fixed.o)
/Users/dzy/Library/Developer/Xcode/DerivedData/SFBAudioEngine-iOS-bdwyhfsekpyhdebhoafikbujogyp/Build/Intermediates/ArchiveIntermediates/SimplePlayer-iOS/BuildProductsPath/Release-iphoneos/libSFBAudioEngine.a(lpc.o)
duplicate symbol ___sincosf in:
/Users/dzy/Library/Developer/Xcode/DerivedData/SFBAudioEngine-iOS-bdwyhfsekpyhdebhoafikbujogyp/Build/Intermediates/ArchiveIntermediates/SimplePlayer-iOS/BuildProductsPath/Release-iphoneos/libSFBAudioEngine.a(fixed.o)
/Users/dzy/Library/Developer/Xcode/DerivedData/SFBAudioEngine-iOS-bdwyhfsekpyhdebhoafikbujogyp/Build/Intermediates/ArchiveIntermediates/SimplePlayer-iOS/BuildProductsPath/Release-iphoneos/libSFBAudioEngine.a(lpc.o)
duplicate symbol ___sincospi in:
/Users/dzy/Library/Developer/Xcode/DerivedData/SFBAudioEngine-iOS-bdwyhfsekpyhdebhoafikbujogyp/Build/Intermediates/ArchiveIntermediates/SimplePlayer-iOS/BuildProductsPath/Release-iphoneos/libSFBAudioEngine.a(fixed.o)
/Users/dzy/Library/Developer/Xcode/DerivedData/SFBAudioEngine-iOS-bdwyhfsekpyhdebhoafikbujogyp/Build/Intermediates/ArchiveIntermediates/SimplePlayer-iOS/BuildProductsPath/Release-iphoneos/libSFBAudioEngine.a(lpc.o)
duplicate symbol ___sincospif in:
/Users/dzy/Library/Developer/Xcode/DerivedData/SFBAudioEngine-iOS-bdwyhfsekpyhdebhoafikbujogyp/Build/Intermediates/ArchiveIntermediates/SimplePlayer-iOS/BuildProductsPath/Release-iphoneos/libSFBAudioEngine.a(fixed.o)
/Users/dzy/Library/Developer/Xcode/DerivedData/SFBAudioEngine-iOS-bdwyhfsekpyhdebhoafikbujogyp/Build/Intermediates/ArchiveIntermediates/SimplePlayer-iOS/BuildProductsPath/Release-iphoneos/libSFBAudioEngine.a(lpc.o)
duplicate symbol ___sputc in:
/Users/dzy/Library/Developer/Xcode/DerivedData/SFBAudioEngine-iOS-bdwyhfsekpyhdebhoafikbujogyp/Build/Intermediates/ArchiveIntermediates/SimplePlayer-iOS/BuildProductsPath/Release-iphoneos/libSFBAudioEngine.a(bitreader.o)
/Users/dzy/Library/Developer/Xcode/DerivedData/SFBAudioEngine-iOS-bdwyhfsekpyhdebhoafikbujogyp/Build/Intermediates/ArchiveIntermediates/SimplePlayer-iOS/BuildProductsPath/Release-iphoneos/libSFBAudioEngine.a(metadata_iterators.o)
duplicate symbol ___sputc in:
/Users/dzy/Library/Developer/Xcode/DerivedData/SFBAudioEngine-iOS-bdwyhfsekpyhdebhoafikbujogyp/Build/Intermediates/ArchiveIntermediates/SimplePlayer-iOS/BuildProductsPath/Release-iphoneos/libSFBAudioEngine.a(bitreader.o)
/Users/dzy/Library/Developer/Xcode/DerivedData/SFBAudioEngine-iOS-bdwyhfsekpyhdebhoafikbujogyp/Build/Intermediates/ArchiveIntermediates/SimplePlayer-iOS/BuildProductsPath/Release-iphoneos/libSFBAudioEngine.a(stream_decoder.o)
duplicate symbol ___sputc in:
/Users/dzy/Library/Developer/Xcode/DerivedData/SFBAudioEngine-iOS-bdwyhfsekpyhdebhoafikbujogyp/Build/Intermediates/ArchiveIntermediates/SimplePlayer-iOS/BuildProductsPath/Release-iphoneos/libSFBAudioEngine.a(bitreader.o)
/Users/dzy/Library/Developer/Xcode/DerivedData/SFBAudioEngine-iOS-bdwyhfsekpyhdebhoafikbujogyp/Build/Intermediates/ArchiveIntermediates/SimplePlayer-iOS/BuildProductsPath/Release-iphoneos/libSFBAudioEngine.a(stream_encoder.o)
duplicate symbol ___sputc in:
/Users/dzy/Library/Developer/Xcode/DerivedData/SFBAudioEngine-iOS-bdwyhfsekpyhdebhoafikbujogyp/Build/Intermediates/ArchiveIntermediates/SimplePlayer-iOS/BuildProductsPath/Release-iphoneos/libSFBAudioEngine.a(bitreader.o)
/Users/dzy/Library/Developer/Xcode/DerivedData/SFBAudioEngine-iOS-bdwyhfsekpyhdebhoafikbujogyp/Build/Intermediates/ArchiveIntermediates/SimplePlayer-iOS/BuildProductsPath/Release-iphoneos/libSFBAudioEngine.a(stream_encoder_framing.o)
duplicate symbol ___inline_isfinited in:
/Users/dzy/Library/Developer/Xcode/DerivedData/SFBAudioEngine-iOS-bdwyhfsekpyhdebhoafikbujogyp/Build/Intermediates/ArchiveIntermediates/SimplePlayer-iOS/BuildProductsPath/Release-iphoneos/libSFBAudioEngine.a(fixed.o)
/Users/dzy/Library/Developer/Xcode/DerivedData/SFBAudioEngine-iOS-bdwyhfsekpyhdebhoafikbujogyp/Build/Intermediates/ArchiveIntermediates/SimplePlayer-iOS/BuildProductsPath/Release-iphoneos/libSFBAudioEngine.a(window.o)
duplicate symbol ___inline_isfinitef in:
/Users/dzy/Library/Developer/Xcode/DerivedData/SFBAudioEngine-iOS-bdwyhfsekpyhdebhoafikbujogyp/Build/Intermediates/ArchiveIntermediates/SimplePlayer-iOS/BuildProductsPath/Release-iphoneos/libSFBAudioEngine.a(fixed.o)
/Users/dzy/Library/Developer/Xcode/DerivedData/SFBAudioEngine-iOS-bdwyhfsekpyhdebhoafikbujogyp/Build/Intermediates/ArchiveIntermediates/SimplePlayer-iOS/BuildProductsPath/Release-iphoneos/libSFBAudioEngine.a(window.o)
duplicate symbol ___inline_isfinitel in:
/Users/dzy/Library/Developer/Xcode/DerivedData/SFBAudioEngine-iOS-bdwyhfsekpyhdebhoafikbujogyp/Build/Intermediates/ArchiveIntermediates/SimplePlayer-iOS/BuildProductsPath/Release-iphoneos/libSFBAudioEngine.a(fixed.o)
/Users/dzy/Library/Developer/Xcode/DerivedData/SFBAudioEngine-iOS-bdwyhfsekpyhdebhoafikbujogyp/Build/Intermediates/ArchiveIntermediates/SimplePlayer-iOS/BuildProductsPath/Release-iphoneos/libSFBAudioEngine.a(window.o)
duplicate symbol ___inline_isinfd in:
/Users/dzy/Library/Developer/Xcode/DerivedData/SFBAudioEngine-iOS-bdwyhfsekpyhdebhoafikbujogyp/Build/Intermediates/ArchiveIntermediates/SimplePlayer-iOS/BuildProductsPath/Release-iphoneos/libSFBAudioEngine.a(fixed.o)
/Users/dzy/Library/Developer/Xcode/DerivedData/SFBAudioEngine-iOS-bdwyhfsekpyhdebhoafikbujogyp/Build/Intermediates/ArchiveIntermediates/SimplePlayer-iOS/BuildProductsPath/Release-iphoneos/libSFBAudioEngine.a(window.o)
duplicate symbol ___inline_isinff in:
/Users/dzy/Library/Developer/Xcode/DerivedData/SFBAudioEngine-iOS-bdwyhfsekpyhdebhoafikbujogyp/Build/Intermediates/ArchiveIntermediates/SimplePlayer-iOS/BuildProductsPath/Release-iphoneos/libSFBAudioEngine.a(fixed.o)
/Users/dzy/Library/Developer/Xcode/DerivedData/SFBAudioEngine-iOS-bdwyhfsekpyhdebhoafikbujogyp/Build/Intermediates/ArchiveIntermediates/SimplePlayer-iOS/BuildProductsPath/Release-iphoneos/libSFBAudioEngine.a(window.o)
duplicate symbol ___inline_isinfl in:
/Users/dzy/Library/Developer/Xcode/DerivedData/SFBAudioEngine-iOS-bdwyhfsekpyhdebhoafikbujogyp/Build/Intermediates/ArchiveIntermediates/SimplePlayer-iOS/BuildProductsPath/Release-iphoneos/libSFBAudioEngine.a(fixed.o)
/Users/dzy/Library/Developer/Xcode/DerivedData/SFBAudioEngine-iOS-bdwyhfsekpyhdebhoafikbujogyp/Build/Intermediates/ArchiveIntermediates/SimplePlayer-iOS/BuildProductsPath/Release-iphoneos/libSFBAudioEngine.a(window.o)
duplicate symbol ___inline_isnand in:
/Users/dzy/Library/Developer/Xcode/DerivedData/SFBAudioEngine-iOS-bdwyhfsekpyhdebhoafikbujogyp/Build/Intermediates/ArchiveIntermediates/SimplePlayer-iOS/BuildProductsPath/Release-iphoneos/libSFBAudioEngine.a(fixed.o)
/Users/dzy/Library/Developer/Xcode/DerivedData/SFBAudioEngine-iOS-bdwyhfsekpyhdebhoafikbujogyp/Build/Intermediates/ArchiveIntermediates/SimplePlayer-iOS/BuildProductsPath/Release-iphoneos/libSFBAudioEngine.a(window.o)
duplicate symbol ___inline_isnanf in:
/Users/dzy/Library/Developer/Xcode/DerivedData/SFBAudioEngine-iOS-bdwyhfsekpyhdebhoafikbujogyp/Build/Intermediates/ArchiveIntermediates/SimplePlayer-iOS/BuildProductsPath/Release-iphoneos/libSFBAudioEngine.a(fixed.o)
/Users/dzy/Library/Developer/Xcode/DerivedData/SFBAudioEngine-iOS-bdwyhfsekpyhdebhoafikbujogyp/Build/Intermediates/ArchiveIntermediates/SimplePlayer-iOS/BuildProductsPath/Release-iphoneos/libSFBAudioEngine.a(window.o)
duplicate symbol ___inline_isnanl in:
/Users/dzy/Library/Developer/Xcode/DerivedData/SFBAudioEngine-iOS-bdwyhfsekpyhdebhoafikbujogyp/Build/Intermediates/ArchiveIntermediates/SimplePlayer-iOS/BuildProductsPath/Release-iphoneos/libSFBAudioEngine.a(fixed.o)
/Users/dzy/Library/Developer/Xcode/DerivedData/SFBAudioEngine-iOS-bdwyhfsekpyhdebhoafikbujogyp/Build/Intermediates/ArchiveIntermediates/SimplePlayer-iOS/BuildProductsPath/Release-iphoneos/libSFBAudioEngine.a(window.o)
duplicate symbol ___inline_isnormald in:
/Users/dzy/Library/Developer/Xcode/DerivedData/SFBAudioEngine-iOS-bdwyhfsekpyhdebhoafikbujogyp/Build/Intermediates/ArchiveIntermediates/SimplePlayer-iOS/BuildProductsPath/Release-iphoneos/libSFBAudioEngine.a(fixed.o)
/Users/dzy/Library/Developer/Xcode/DerivedData/SFBAudioEngine-iOS-bdwyhfsekpyhdebhoafikbujogyp/Build/Intermediates/ArchiveIntermediates/SimplePlayer-iOS/BuildProductsPath/Release-iphoneos/libSFBAudioEngine.a(window.o)
duplicate symbol ___inline_isnormalf in:
/Users/dzy/Library/Developer/Xcode/DerivedData/SFBAudioEngine-iOS-bdwyhfsekpyhdebhoafikbujogyp/Build/Intermediates/ArchiveIntermediates/SimplePlayer-iOS/BuildProductsPath/Release-iphoneos/libSFBAudioEngine.a(fixed.o)
/Users/dzy/Library/Developer/Xcode/DerivedData/SFBAudioEngine-iOS-bdwyhfsekpyhdebhoafikbujogyp/Build/Intermediates/ArchiveIntermediates/SimplePlayer-iOS/BuildProductsPath/Release-iphoneos/libSFBAudioEngine.a(window.o)
duplicate symbol ___inline_isnormall in:
/Users/dzy/Library/Developer/Xcode/DerivedData/SFBAudioEngine-iOS-bdwyhfsekpyhdebhoafikbujogyp/Build/Intermediates/ArchiveIntermediates/SimplePlayer-iOS/BuildProductsPath/Release-iphoneos/libSFBAudioEngine.a(fixed.o)
/Users/dzy/Library/Developer/Xcode/DerivedData/SFBAudioEngine-iOS-bdwyhfsekpyhdebhoafikbujogyp/Build/Intermediates/ArchiveIntermediates/SimplePlayer-iOS/BuildProductsPath/Release-iphoneos/libSFBAudioEngine.a(window.o)
duplicate symbol ___inline_signbitd in:
/Users/dzy/Library/Developer/Xcode/DerivedData/SFBAudioEngine-iOS-bdwyhfsekpyhdebhoafikbujogyp/Build/Intermediates/ArchiveIntermediates/SimplePlayer-iOS/BuildProductsPath/Release-iphoneos/libSFBAudioEngine.a(fixed.o)
/Users/dzy/Library/Developer/Xcode/DerivedData/SFBAudioEngine-iOS-bdwyhfsekpyhdebhoafikbujogyp/Build/Intermediates/ArchiveIntermediates/SimplePlayer-iOS/BuildProductsPath/Release-iphoneos/libSFBAudioEngine.a(window.o)
duplicate symbol ___inline_signbitf in:
/Users/dzy/Library/Developer/Xcode/DerivedData/SFBAudioEngine-iOS-bdwyhfsekpyhdebhoafikbujogyp/Build/Intermediates/ArchiveIntermediates/SimplePlayer-iOS/BuildProductsPath/Release-iphoneos/libSFBAudioEngine.a(fixed.o)
/Users/dzy/Library/Developer/Xcode/DerivedData/SFBAudioEngine-iOS-bdwyhfsekpyhdebhoafikbujogyp/Build/Intermediates/ArchiveIntermediates/SimplePlayer-iOS/BuildProductsPath/Release-iphoneos/libSFBAudioEngine.a(window.o)
duplicate symbol ___inline_signbitl in:
/Users/dzy/Library/Developer/Xcode/DerivedData/SFBAudioEngine-iOS-bdwyhfsekpyhdebhoafikbujogyp/Build/Intermediates/ArchiveIntermediates/SimplePlayer-iOS/BuildProductsPath/Release-iphoneos/libSFBAudioEngine.a(fixed.o)
/Users/dzy/Library/Developer/Xcode/DerivedData/SFBAudioEngine-iOS-bdwyhfsekpyhdebhoafikbujogyp/Build/Intermediates/ArchiveIntermediates/SimplePlayer-iOS/BuildProductsPath/Release-iphoneos/libSFBAudioEngine.a(window.o)
duplicate symbol ___sincos in:
/Users/dzy/Library/Developer/Xcode/DerivedData/SFBAudioEngine-iOS-bdwyhfsekpyhdebhoafikbujogyp/Build/Intermediates/ArchiveIntermediates/SimplePlayer-iOS/BuildProductsPath/Release-iphoneos/libSFBAudioEngine.a(fixed.o)
/Users/dzy/Library/Developer/Xcode/DerivedData/SFBAudioEngine-iOS-bdwyhfsekpyhdebhoafikbujogyp/Build/Intermediates/ArchiveIntermediates/SimplePlayer-iOS/BuildProductsPath/Release-iphoneos/libSFBAudioEngine.a(window.o)
duplicate symbol ___sincosf in:
/Users/dzy/Library/Developer/Xcode/DerivedData/SFBAudioEngine-iOS-bdwyhfsekpyhdebhoafikbujogyp/Build/Intermediates/ArchiveIntermediates/SimplePlayer-iOS/BuildProductsPath/Release-iphoneos/libSFBAudioEngine.a(fixed.o)
/Users/dzy/Library/Developer/Xcode/DerivedData/SFBAudioEngine-iOS-bdwyhfsekpyhdebhoafikbujogyp/Build/Intermediates/ArchiveIntermediates/SimplePlayer-iOS/BuildProductsPath/Release-iphoneos/libSFBAudioEngine.a(window.o)
duplicate symbol ___sincospi in:
/Users/dzy/Library/Developer/Xcode/DerivedData/SFBAudioEngine-iOS-bdwyhfsekpyhdebhoafikbujogyp/Build/Intermediates/ArchiveIntermediates/SimplePlayer-iOS/BuildProductsPath/Release-iphoneos/libSFBAudioEngine.a(fixed.o)
/Users/dzy/Library/Developer/Xcode/DerivedData/SFBAudioEngine-iOS-bdwyhfsekpyhdebhoafikbujogyp/Build/Intermediates/ArchiveIntermediates/SimplePlayer-iOS/BuildProductsPath/Release-iphoneos/libSFBAudioEngine.a(window.o)
duplicate symbol ___sincospif in:
/Users/dzy/Library/Developer/Xcode/DerivedData/SFBAudioEngine-iOS-bdwyhfsekpyhdebhoafikbujogyp/Build/Intermediates/ArchiveIntermediates/SimplePlayer-iOS/BuildProductsPath/Release-iphoneos/libSFBAudioEngine.a(fixed.o)
/Users/dzy/Library/Developer/Xcode/DerivedData/SFBAudioEngine-iOS-bdwyhfsekpyhdebhoafikbujogyp/Build/Intermediates/ArchiveIntermediates/SimplePlayer-iOS/BuildProductsPath/Release-iphoneos/libSFBAudioEngine.a(window.o)
duplicate symbol ___sputc in:
/Users/dzy/Library/Developer/Xcode/DerivedData/SFBAudioEngine-iOS-bdwyhfsekpyhdebhoafikbujogyp/Build/Intermediates/ArchiveIntermediates/SimplePlayer-iOS/BuildProductsPath/Release-iphoneos/libSFBAudioEngine.a(bitreader.o)
/Users/dzy/Library/Developer/Xcode/DerivedData/SFBAudioEngine-iOS-bdwyhfsekpyhdebhoafikbujogyp/Build/Intermediates/ArchiveIntermediates/SimplePlayer-iOS/BuildProductsPath/Release-iphoneos/libSFBAudioEngine.a(ogg_decoder_aspect.o)
duplicate symbol ___sputc in:
/Users/dzy/Library/Developer/Xcode/DerivedData/SFBAudioEngine-iOS-bdwyhfsekpyhdebhoafikbujogyp/Build/Intermediates/ArchiveIntermediates/SimplePlayer-iOS/BuildProductsPath/Release-iphoneos/libSFBAudioEngine.a(bitreader.o)
/Users/dzy/Library/Developer/Xcode/DerivedData/SFBAudioEngine-iOS-bdwyhfsekpyhdebhoafikbujogyp/Build/Intermediates/ArchiveIntermediates/SimplePlayer-iOS/BuildProductsPath/Release-iphoneos/libSFBAudioEngine.a(ogg_encoder_aspect.o)
duplicate symbol ___sputc in:
/Users/dzy/Library/Developer/Xcode/DerivedData/SFBAudioEngine-iOS-bdwyhfsekpyhdebhoafikbujogyp/Build/Intermediates/ArchiveIntermediates/SimplePlayer-iOS/BuildProductsPath/Release-iphoneos/libSFBAudioEngine.a(bitreader.o)
/Users/dzy/Library/Developer/Xcode/DerivedData/SFBAudioEngine-iOS-bdwyhfsekpyhdebhoafikbujogyp/Build/Intermediates/ArchiveIntermediates/SimplePlayer-iOS/BuildProductsPath/Release-iphoneos/libSFBAudioEngine.a(ogg_helper.o)
ld: 48 duplicate symbols for architecture armv7
clang: error: linker command failed with exit code 1 (use -v to see invocation)
Hello,
I added frameworks for mac os and it build successfully but when I run app it crashes and gives
dyld: Library not loaded: @rpath/dumb.framework/Versions/A/dumb
Referenced from: /Users/Library/Developer/Xcode/DerivedData/SFBAudioEngine-frrtbwxsqekjtmekpdfikqaqcsso/Build/Products/Debug/SimplePlayer.app/Contents/MacOS/SimplePlayer
Reason: image not found
And When I am trying to make build for ios app It is giving error
Command /Developer/Platforms/iPhoneSimulator.platform/Developer/usr/bin/libtool failed with exit code 1
Please help me to run this app .
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.