菜鸟教程小白 发表于 2022-12-13 13:24:20

iphone - YouTube 视频 GData API


                                            <p><p>我正在尝试让 YouTube 在我的 iOS 应用中正常运行。我正在成功检索特定用户的视频列表,但我正在努力实现 didSelectRowAtIndexPath 以便将所选视频嵌入到单独的 viewController 中。这是我遇到问题的代码:</p>

<pre><code>- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
DetailViewController *detailController = ;

    GDataEntryBase *entry2 = [ objectAtIndex:indexPath.row];
    videoArray = [[(GDataEntryYouTubeVideo *)entry2 mediaGroup] mediaContents];
    NSString *tempUrl = ;
    NSLog(@&#34;The URL is:%@&#34;,tempUrl);
    detailController.videoString = tempUrl;

    ;

}
</code></pre>

<p>每次运行时,我都会在 'detailController.videoString = tempUrl;' 处获得一个断点</p>

<p>我可以看到 tempUrl 字符串正在通过 NSLog 填充以下内容:</p>

<pre><code>The URL is:GDataMediaContent 0x69c76a0: {url:https://www.youtube.com/v/s36krFdPmYQ?version=3&amp;f=user_uploads&amp;app=youtube_gdata type:application/x-shockwave-flash medium:video isDefault:true expression:full duration:1913}
</code></pre>

<p>如何从 GData API 中仅提取视频 URL?</p>

<p>提前感谢您的回复。</p>

<p>我进行了以下更改,现在我得到了正确的 URL 字符串:</p>

<pre><code>GDataEntryBase *entry2 = [ objectAtIndex:indexPath.row];
    NSArray *mediaContents = [[(GDataEntryYouTubeVideo *)entry2 mediaGroup] mediaContents];
    GDataMediaContent *flashContent = ;
    NSLog(@&#34;The URL is:%@&#34;,);
    detailController.videoString = ;
</code></pre>

<p>这给了我来自 NSLog 的以下信息:</p>

<pre><code>The URL is:https://www.youtube.com/v/s36krFdPmYQ?version=3&amp;f=user_uploads&amp;app=youtube_gdata
</code></pre>

<p>然而,我仍然在 'detailController.videoString = ; 处获得断点;</p></p>
                                    <br><hr><h1><strong>Best Answer-推荐答案</ strong></h1><br>
                                            <p><p>我能够解决这个问题。我在两个 ViewController 之间添加了 Modal segue,并稍微修改了我的代码。这是我添加 segue 后最终使用的代码:</p>

<pre><code>- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
    DetailViewController *detailController = ;
    GDataEntryBase *entry2 = [ objectAtIndex:indexPath.row];
    NSString *title = [ stringValue];
    NSArray *contents = [[(GDataEntryYouTubeVideo *)entry2 mediaGroup] mediaContents];
    GDataMediaContent *flashContent = ;
    NSString *tempURL = ;

    detailController.videoString = tempURL;
    detailController.titleString = title;
    ;

}
</code></pre>

<p>您可以在此处查看完整的 YouTubeDemo 应用代码:
<a href="https://gist.github.com/2501684" rel="noreferrer noopener nofollow">https://gist.github.com/2501684</a> </p></p>
                                   
                                                <p style="font-size: 20px;">关于iphone - YouTube 视频 GData API,我们在Stack Overflow上找到一个类似的问题:
                                                        <a href="https://stackoverflow.com/questions/10316397/" rel="noreferrer noopener nofollow" style="color: red;">
                                                                https://stackoverflow.com/questions/10316397/
                                                        </a>
                                                </p>
                                       
页: [1]
查看完整版本: iphone - YouTube 视频 GData API