我的Show对象如下所示:
class Show: RLMObject {
dynamic var venue: Venue?
}
Run Code Online (Sandbox Code Playgroud)
和我的Venue对象:
class Venue: RLMObject {
dynamic var title = ""
}
Run Code Online (Sandbox Code Playgroud)
我需要能够通过Venue对象的标题对Show对象进行排序.我尝试了以下但出现了错误:
allShowsByLocation = Show.allObjects().sortedResultsUsingProperty("venue.title", ascending: true)
Run Code Online (Sandbox Code Playgroud)
错误是:无效的排序列',原因:'找不到列'(null)'.
我正在iPhone上使用OpenAL声音框架,我在个别声音上设置了不同的音量.我遇到了一个问题,当我从一个声音切换到另一个声音时,我听到一声初始的砰砰声/咔哒声.
当我有一个高音量(1.0)的声音和一个低音量(0.2)的第二个声音时,它真的很明显.当我敲响响亮的声音,然后敲击柔和的声音时,我听到弹出/咔嗒声.但是,当我从柔和的声音走向响亮的声音时,我什么都没注意到.因此,当从响亮的声音切换到柔和的声音时,真正发生了弹出/点击
这是init声音方法:
- (id) initWithSoundFile:(NSString *)file doesLoop:(BOOL)loops
{
self = [super init];
if (self != nil)
{
if(![self loadSoundFile:file doesLoop:loops])
{
debug(@"Failed to load the sound file: %@...", file);
[self release];
return nil;
}
self.sourceFileName = file;
//temporary sound queue
self.temporarySounds = [NSMutableArray array];
//default volume/pitch
self.volume = 1.0;
self.pitch = 1.0;
}
return self;
}
Run Code Online (Sandbox Code Playgroud)
这是播放功能:
- (BOOL) play
{
if([self isPlaying]) //see if the base source is busy...
{
//if so, create a new source
NSUInteger tmpSourceID; …Run Code Online (Sandbox Code Playgroud) 我看到一个特定于运行Android 5.1.1的Galaxy S6的问题.我正在使用MediaPlayer播放音频流,并且在设备和Android版本的这种特定配置上,它无法达到onPrepared方法,因此永远无法播放.
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mAndroidPlayer = new MediaPlayer();
mAndroidPlayer.setOnErrorListener(new MediaPlayer.OnErrorListener() {
@Override
public boolean onError(MediaPlayer mediaPlayer, int i, int i1) {
System.out.print("ERROR " + i);
return false;
}
});
mAndroidPlayer.setOnPreparedListener(new MediaPlayer.OnPreparedListener() {
@Override
public void onPrepared(MediaPlayer mediaPlayer) {
System.out.println("PREPARED");
mAndroidPlayer.start();
}
});
mAndroidPlayer.setAudioStreamType(AudioManager.STREAM_MUSIC);
try {
mAndroidPlayer.setDataSource("http://live.radioart.com/fFilm_scores.mp3");
} catch (IOException e) {
e.printStackTrace();
}
try {
mAndroidPlayer.prepareAsync();
} catch (IllegalStateException e) {
e.printStackTrace();
}
}
Run Code Online (Sandbox Code Playgroud)
只是为了重新迭代,它适用于所有其他设备和Android版本.
以下是从控制台输出:
09-04 09:54:51.112 24991-24991/com.tsm.mediaplayertest E/Zygote? MountEmulatedStorage()
09-04 09:54:51.112 …Run Code Online (Sandbox Code Playgroud) 我正在使用以下URL中的代码,以便通过AudioRecord从麦克风获取声音数据:http: //www.dreamincode.net/forums/topic/303235-visualizing-sound-from-the-microphone/
我看到的问题是,如果另一个应用程序也使用麦克风,我从AudioRecord收到错误(状态-3).如果我杀死正在使用麦克风的其他应用程序,一切都按预期工作.是否有一个优雅的解决方案,即使另一个应用程序已经在使用它,我的应用程序也可以访问麦克风?
谢谢.
我发现Google Play中与Fabric/Crashlytics有关的崩溃.这是在我从正常的Crashlytics更新到新的Fabric Crashlytics后发生的.我只能在我的一个设备(Galaxy S2)上重现它.我拥有的所有其他设备(Nexus 5和S4)都没有崩溃.这是堆栈跟踪:
08-19 09:32:26.328 7084-7084/com.tsm.countryjam D/dalvikvm? WAIT_FOR_CONCURRENT_GC blocked 0ms
08-19 09:32:26.653 7084-7088/com.tsm.countryjam D/dalvikvm? GC_CONCURRENT freed 251K, 12% free 9567K/10823K, paused 12ms+2ms, total 70ms
08-19 09:32:26.653 7084-7084/com.tsm.countryjam D/dalvikvm? WAIT_FOR_CONCURRENT_GC blocked 42ms
08-19 09:32:26.653 7084-7100/com.tsm.countryjam D/dalvikvm? WAIT_FOR_CONCURRENT_GC blocked 42ms
08-19 09:32:26.668 7084-7084/com.tsm.countryjam I/dalvikvm? Failed resolving Lcom/crashlytics/android/beta/Beta; interface 9027 'Lio/fabric/sdk/android/services/common/DeviceIdentifierProvider;'
08-19 09:32:26.668 7084-7084/com.tsm.countryjam W/dalvikvm? Link of class 'Lcom/crashlytics/android/beta/Beta;' failed
08-19 09:32:26.668 7084-7084/com.tsm.countryjam E/dalvikvm? Could not find class 'com.crashlytics.android.beta.Beta', referenced from method com.crashlytics.android.Crashlytics.<init>
08-19 09:32:26.668 7084-7084/com.tsm.countryjam W/dalvikvm? VFY: unable to resolve …Run Code Online (Sandbox Code Playgroud) 我正在使用内容模式Aspect Fill为我的UIImageView,它的工作方式大部分都是我想要的.我注意到的是,它看起来像是使用图像的中间部分作为裁剪的部分来填充边界.如何进行纵横填充,但是使用图像的顶部?
我目前正在使用Android中的READ_PHONE_STATE权限在有通话时暂停我的媒体播放器,并在通话结束时恢复播放.许可似乎吓到了很多人,所以我想知道是否有一种替代方案可以在没有它的情况下接听电话的启动和停止.任何帮助表示赞赏.谢谢!
假设在Apple的示例代码的同一"房间"中可以连接和聊天不超过8个对等,我是否正确? https://developer.apple.com/library/ios/samplecode/MultipeerGroupChat/Introduction/Intro.html
这提到了每个会话限制的最大8个对等:https: //developer.apple.com/library/ios/documentation/MultipeerConnectivity/Reference/MultipeerConnectivityFramework/MultipeerConnectivityFramework.pdf
如果是这样,如何修改代码以允许同一聊天室中的8个以上的对等体?
谢谢你的指导.
我正在尝试使用 MediaSessionCompat 为我的应用程序添加锁屏播放器控件和元数据。我试过的一切都不起作用。播放时锁定屏幕不显示任何控件或元数据。请在下面查看我当前的代码,感谢任何帮助。
流服务.java:
public class StreamService extends Service implements MediaPlayer.OnCuePointReceivedListener, MediaPlayer.OnStateChangedListener,
MediaPlayer.OnInfoListener, AudioManager.OnAudioFocusChangeListener {
private WifiManager.WifiLock wifiLock;
private static String LOG_TAG = "StreamService";
public static final String BROADCAST_PLAYER_STATE = "com.test.BROADCAST_PLAYER_STATE";
public static final String BROADCAST_PLAYER_META = "com.test.BROADCAST_PLAYER_META";
public static final String BROADCAST_PLAYER_ALBUM = "com.test.BROADCAST_PLAYER_ALBUM";
public static final int NOTIFICATION_ID = 999999;
private MediaSessionCompat mediaSession;
private boolean audioInterrupted = false;
public StreamService() {
}
@Override
public void onCreate(){
super.onCreate();
setupMediaPlayer();
setupMediaSession();
}
@Override
public IBinder onBind(Intent intent) {
return null; …Run Code Online (Sandbox Code Playgroud) 我有一个Xcode项目设置有多个目标/方案,所以我在同一个代码库下有几个应用程序.
我在我的Fastfile中创建了以下测试通道,它为我的每个应用程序运行"叹气"工具:
lane :testing do
["First", "Second", "Third", "Fourth"].each do |scheme_name|
sigh
end
end
Run Code Online (Sandbox Code Playgroud)
查看fastlane文档,我看到您可以定义一个包标识符,叹息使用.但我需要它自动从每个目标/方案的plist中获取当前的bundle标识符并用它来叹息.这可以实现吗?
像(伪代码):
bundle_id = get_bundle_id_from_plist
sigh(app_identifier: bundle_id)
Run Code Online (Sandbox Code Playgroud)
我尝试使用这个插件:https://github.com/SiarheiFedartsou/fastlane-plugin-versioning,它有一个获取plist路径的方法.然后我运行了这段代码:
bundle_id = get_info_plist_value(path: get_info_plist_path(target: scheme_name), key: 'CFBundleIdentifier')
puts bundle_id
Run Code Online (Sandbox Code Playgroud)
输出是$(PRODUCT_BUNDLE_IDENTIFIER),实际上是plist值,所以我越来越近了.但是我需要这个来返回实际的bundle id,而不仅仅是它指向的变量.
我想要使用叹息的全部原因是因为每个应用程序/目标都有自己的配置文件,我必须由于CarPlay权限而最初手动生成.我希望它在到期时自动为每个目标创建新的配置文件.
android ×5
ios ×5
java ×2
objective-c ×2
swift ×2
audiorecord ×1
crashlytics ×1
fastlane ×1
iphone ×1
openal ×1
realm ×1
uiimageview ×1