小编mso*_*ler的帖子

AVAudioPlayer没有播放任何声音

我正在开发一个需要使用AVFoundation框架播放声音的iOS应用程序.Xcode 4中的工作区结构包含两个项目:

  • 工作区
    • 应用程序本身(主要项目)
    • 实用程序库

构建实用程序库之后,它会生成一个静态库,该库在主应用程序中用作框架.

因此,当尝试使用下面的代码在主应用程序内播放声音时,它会按预期工作.

NSString *resourcePath = [[NSBundle mainBundle] resourcePath];
NSString *path = [NSString stringWithFormat:@"%@/sound.mp3", resourcePath];

NSURL *url = [NSURL fileURLWithPath:path];
NSError *error = nil;

AVAudioPlayer *audioPlayer = [[AVAudioPlayer alloc] initWithContentsOfURL:url
                                                                    error:&error];
[audioPlayer play];
Run Code Online (Sandbox Code Playgroud)

相反,当尝试使用与上面相同的代码在实用程序库中播放完全相同的声音(或任何其他声音)时,即使错误为nilaudioPlayer属性值为正确,也不会播放任何声音(数字)频道,持续时间).

我确保AVFoundation框架在两个项目中.

此外,我的类使用AVAudioPlayerDelegate协议并实现这两个方法:

- (void)audioPlayerDidFinishPlaying:(AVAudioPlayer *)player successfully:(BOOL)flag;
- (void)audioPlayerDecodeErrorDidOccur:(AVAudioPlayer *)player error:(NSError *)error;
Run Code Online (Sandbox Code Playgroud)

尝试播放声音后,这些方法都不会被调用.

如果我使用AudioToolbox框架,那么它会播放声音.但AVFoundation由于几个原因,我对使用感兴趣.

怎么知道发生了什么?我错过了什么AVFoundation吗?它可能与AVAudioPlayer在静态库中使用有关吗?

提前致谢.

audio objective-c avfoundation xcode4 automatic-ref-counting

58
推荐指数
5
解决办法
3万
查看次数

如何将视频流从一个 python 传递到另一个?

在我之前的文章中,我们找到了一种将图像文件从一个 python传递到另一个 python 脚本的方法将视频数据从一个 python 脚本传递到另一个

我现在正在尝试传递视频(连续图像):

写.py

import sys
import numpy as np
import cv2
from PIL import Image
import io
import time

while True:
    img = cv2.imread('cat.jpg')
    bimg = cv2.imencode('.jpg',img)[1]
    sys.stdout.buffer.write(bimg)
    sys.stdout.flush()
    time.sleep(1)
Run Code Online (Sandbox Code Playgroud)

阅读.py:

import sys
from PIL import Image
import io
import cv2
import numpy as np
from io import BytesIO
    
while True:
    data = sys.stdin.buffer.read()
    img_np = cv2.imdecode(np.frombuffer(BytesIO(data).read(), np.uint8), cv2.IMREAD_UNCHANGED)
    cv2.imshow('image', img_np)
    cv2.waitKey(0)
Run Code Online (Sandbox Code Playgroud)

如果我将 write.py 数据输出到终端,它会打印出来。如果我手动将数据交给 read.py 读取。但是把它们放在一起 ( python3 write.py | python3 …

python stdout image stream cv2

11
推荐指数
2
解决办法
509
查看次数

NSDocumentController currentDocument返回nil

我正在研究我的第一个基于Mac文档的应用程序.

我已经进行了子类化NSDocument,重新实现了诸如的方法

- (BOOL)readFromURL:(NSURL *)absoluteURL ofType:(NSString *)typeName error:(NSError **)outError;
- (BOOL)writeToURL:(NSURL *)absoluteURL ofType:(NSString *)typeName error:(NSError **)outError;
- (void)makeWindowControllers;
Run Code Online (Sandbox Code Playgroud)

主窗口控制器是一个子类NSWindowsController,包含两个NSViewController子类.

我面临的问题是我需要从这些视图控制器访问当前文档.我所做的就是打电话

MyDocument *myDocument = [[NSDocumentController sharedController] currentDocument];
Run Code Online (Sandbox Code Playgroud)

首先,在启动应用程序后,立即创建一个新文档.然后,创建主窗口及其视图控制器,但上面的方法返回nil.这是我得到的日志(使用NSLog):

Just created this new document: <MyDocument: 0x10040ff10>
I'm in a view controller and current document is (null)
Run Code Online (Sandbox Code Playgroud)

之后,创建一个新文档并调用此方法会产生一个非零指针,但它不会指向正确的文档,而是指向第一个:

Just created this new document: <MyDocument: 0x100437e10>
I'm in a view controller and current document is <MyDocument: 0x10040ff10>
Run Code Online (Sandbox Code Playgroud)

请注意,在创建第二个文档后,currentDocument指向第一个文档而不是第二个文档.

知道我错过了什么或做错了吗?什么时候currentDocument设置NSDocumentController …

macos cocoa objective-c nsdocument

9
推荐指数
2
解决办法
2662
查看次数

当可达性改变时,MKNetworkKit操作不会恢复/完成

我是新手MKNetworkKit,但我已经能够将它添加到我的项目中,除非处理可达性更改,否则它完全正常工作.

情况如下:

  1. 我禁用WiFi并运行应用程序.
  2. 即使没有可达性,我POST也通过创建一个MKNetworkOperationfrom我的MKNetworkEngine子类来请求(使用)一些数据.在请求数据之前,操作被设置为freezable(根据Mugunth Kumar的文档).
  3. 在启用WiFi后,调用checkAndRestoreFrozenOperationsin MKNetworkEngine并且它检测到有一个挂起的操作(创建的没有可达性),它尝试入队.
  4. 之后,我的onCompletion块永远不会被调用.

有什么我不明白冻结操作+可达性MKNetworkKit吗?冻结是否仅适用于请求开始后可达性发生变化的操作?或者我应该实现自己的可达性更改块?

这是我的MKNetworkEngine子类中的代码,它创建操作并启动请求.请注意,不相关的代码已被禁止.

NSMutableDictionary *params = [NSMutableDictionary dictionaryWithObject:@"value" forKey:@"param"];
MKNetworkOperation *op = [self operationWithPath:MYPATH
                                          params:params
                                      httpMethod:@"POST"];
[op setFreezable:YES];

[op onCompletion:^(MKNetworkOperation *completedOperation) {
   // ...
   // Here is where I process response and send the result to my completion block
   // It's called when WiFi is available, but not called otherwise.
   // ... …
Run Code Online (Sandbox Code Playgroud)

network-programming ios mknetworkkit mknetworkengine

6
推荐指数
1
解决办法
2172
查看次数

点击MFMailComposeViewController的取消按钮时,不显示操作表

我正试图加入MFMailComposeViewController我的应用程序.当我以模态方式呈现它时,发送按钮工作正常并且发送电子邮件,这意味着在这种情况下发送给委托的结果是正确的.

而当我点击取消按钮时它会挂起应用程序.日志也没有显示错误,只是屏幕变暗,一切都被禁用.显然,结果没有传递给委托(我通过日志检查).它似乎是

(void)mailComposeController:(MFMailComposeViewController*)controller didFinishWithResult:(MFMailComposeResult)result error:(NSError*)error
Run Code Online (Sandbox Code Playgroud)

每次按下取消按钮时都不会调用.可能这就是为什么没有显示动作表(保存草稿,取消,删除草稿)的原因,因此应用程序就在那里挂起.

我正在使用Apple的示例应用程序(MailComposer)中的确切代码,它在那里工作得很好,但在某种程度上我的失败.:(

如果有人遇到同样的问题并成功解决了,请帮助我.

我的代码:

  -(IBAction)emailButtonPressed:(id)sender{

           Class mailClass = (NSClassFromString(@"MFMailComposeViewController"));
       if (mailClass != nil)
          {

          if ([mailClass canSendMail])
            {
              [self displayComposerSheet];
            }
          else
            {
              [self launchMailAppOnDevice];
            }
          }
        else
          {
            [self launchMailAppOnDevice];
          }


}


#pragma mark -
#pragma mark Compose Mail


-(void)displayComposerSheet 
{
    MFMailComposeViewController *picker = [[MFMailComposeViewController alloc] init];
    picker.mailComposeDelegate = self;

    [picker setSubject:@"Ilusiones"];


    // Set up recipients
     NSArray *toRecipients = [NSArray arrayWithObject:@"anam@semanticnotion.com"]; 

     [picker setToRecipients:toRecipients];
     // …
Run Code Online (Sandbox Code Playgroud)

iphone objective-c ios4

4
推荐指数
1
解决办法
2814
查看次数

Google Sheets v4 更新效果 JSON 端点数据?2021 年 6 月 8 日关闭

在此处输入图片说明

我阅读了这篇关于 Google Sheet API v4 更新的文章。我需要更改当前的代码结构吗?

我正在使用简单的 JSON 数据在网络上显示 Google 工作表数据。我使用以下代码在网络上制作了一些 PHP 和 JavaScript 基础项目:

.HTML
 var sf = https://spreadsheets.google.com/feeds/list/1l7VfPOI3TYtPuBZlZ-JMMiZW1OK6rzIBt8RFd6KmwbA/1/public/values?alt=json

 $.getJSON(sf, function(data) {
 var sd = data.feed.entry;

 key = data.feed.entry[i]['gsx$key']['$t'];
 name = data.feed.entry[i]['gsx$name']['$t'];
 img = data.feed.entry[i]['gsx$img']['$t'];
 rice = data.feed.entry[i]['gsx$price']['$t'];

Run Code Online (Sandbox Code Playgroud)
.php

$url = 'https://spreadsheets.google.com/feeds/list/1l7VfPOI3TYtPuBZlZ-JMMiZW1OK6rzIBt8RFd6KmwbA/1/public/values?alt=json';
$file = file_get_contents($url); 
$json = json_decode($file);

$rows = $json->{'feed'}->{'entry'};

$key = $row->{'gsx$key'}->{'$t'};
$price = $row->{'gsx$price'}->{'$t'};
$img = $row->{'gsx$img'}->{'$t'};
$name = $row->{'gsx$name'}->{'$t'};

Run Code Online (Sandbox Code Playgroud)

我真的需要更新任何东西吗?

javascript php google-sheets google-apps-script google-sheets-api

4
推荐指数
1
解决办法
1893
查看次数

使用角度自定义按钮进行滑动分页/导航

我使用Swiper进行角度处理,并使用 Angular Swipper包装器。我正在尝试添加一个onclick滑动到下一张幻灯片的按钮。

但我不知道如何获取 Swiper 实例以及如何调用slidenext函数。我怎样才能做同样的事情?提前致谢。

typescript angular ngx-swiper-wrapper swiper.js

3
推荐指数
1
解决办法
9861
查看次数