ইউআইবিউবভিউয়ের পরিবর্তে এমপিমোভিপ্লেয়ারকন্ট্রোলারের সাথে ইউটিউব ভিডিও খেলুন


89

আমি MPMoviePlayerController ব্যবহার করে কিছু ইউটিউব ভিডিও স্ট্রিম করার চেষ্টা করছি তবে আমার কিছু সমস্যা হচ্ছে। আমি যে কোডটি ব্যবহার করছি তা বেশ সহজ এবং আমি এমটিভিভি কনটেন্টেআরএল একটি URL পাস করে .m4v ভিডিও খেলতে পারি। আমি যখন মুভি প্লেয়ারটি চালু করি তখন প্লেয়ার আসে তবে প্রায় 20 সেকেন্ড পরে চলে যায়। আমি যখন সিমুলেটারে চেষ্টা করি তখন আমি একটি সতর্কতা দর্শন পাই যা বলে যে সার্ভারটি সঠিকভাবে কনফিগার করা হয়নি। গুগল থেকে নির্দিষ্ট ধরণের ভিডিও ফিড পেতে আমার কি যুক্তিটি পাস করতে হবে?

NSURL *videoURL = [NSURL URLWithString:@"http://www.youtube.com/v/HGd9qAfpZio&hl=en_US&fs=1&"];
MPMoviePlayerController *moviePlayer;
moviePlayer = [[MPMoviePlayerController alloc] initWithContentURL:videoURL];

[moviePlayer play];

আমি নিম্নলিখিত URL এর http://www.youtube.com/watch?v=HGd9qAfpZio ব্যবহার করে দেখেছি

আমি আর্গুমেন্ট এবং ফর্ম্যাট = 1ও দেখেছি এবং উভয় স্ট্রিংয়ের শেষে এটি যুক্ত করার চেষ্টা করেছি তবে ভাগ্য নেই।


আমি আরও কিছু তথ্য পেয়েছি তবে এটি এখনও কার্যকর হয় না। কেউ ইউআরএল এর জন্য এটি ব্যবহার করার পরামর্শ দিয়েছিল: youtube.com/get_video?video_id=ID&t=SIGNATURE&fmt=18 আমি আমার ভিডিও আইডি রেখেছি তবে স্বাক্ষর কী তা আমি জানি না? এবং ভিডিও প্লেয়ার এখনও একই আচরণ করে। এটি প্লেয়ারটি খোলে তারপরে এটি 10 ​​থেকে 20 সেকেন্ড পরে বন্ধ হয়ে যায়।
jmurphy

উত্তর:


78

আপনার নিজের অ্যাপ্লিকেশনটিতে ইউটিউব ভিডিও প্লে করার একমাত্র উপায় হ'ল আপনি UIWebViewযে মুভিটি UIWebView'sসামগ্রী হিসাবে খেলতে চান তার জন্য ইউটিউব থেকে এম্বেড ট্যাগ সহ একটি তৈরি করা । UIWebViewএম্বেড করা অবজেক্টটি ইউটিউব লিঙ্কটি সনাক্ত করবে এবং ওয়েব ভিউ এর সামগ্রীটি ভিডিওর জন্য ইউটিউব পূর্বরূপ হবে। আপনার ব্যবহারকারী যখন পূর্বরূপ ক্লিক করেন, তখন ভিডিওটি এমপিএমভি প্লেয়ারকন্ট্রোলারে প্রদর্শিত হবে। এটি মুক্সেকয়েড প্রদত্ত লিঙ্কটিতে বর্ণিত কৌশলটি ( কোনও অ্যাপ্লিকেশনের মধ্যে কীভাবে ইউটিউব ভিডিও খেলতে পারে ), এবং এটি কোনও অ্যাপ্লিকেশনের মধ্যে ইউটিউব ভিডিও প্লে করার একমাত্র উপায় (এটি আমি যতদূর জানি)। ইউটিউব ইউআরএল পাস করার মাধ্যমে আপনি এখনও ইউটিউব অ্যাপ্লিকেশন লঞ্চ করতে পারেন -[UIApplication openURL:], তবে অবশ্যই এটি আপনার নিজের অ্যাপ্লিকেশনটি বন্ধ করে দেয় যা প্রায়শই অনাকাঙ্ক্ষিত।

দুর্ভাগ্যক্রমে, সরাসরি ইউটিউব ভিডিও প্লে করার কোনও উপায় নেই MPMoviePlayerControllerকারণ ইউটিউব ভিডিও ফাইলগুলিতে সরাসরি লিঙ্কগুলি প্রকাশ করে না।


4
হ্যাঁ, আপনার অ্যাপটিতে ইউটিউব ভিডিও প্লে করার একমাত্র উপায়। বিকল্প খুঁজছেন 2 ব্যয়। গুণমানও খুব খারাপ a
samvermette

এখনও কি অন্য কোনও উপায় নেই - 2 বছরেরও বেশি পরে?
ফেব্ব

এম্বেড হিসাবে কোনও ইউটিউব ভিডিও প্লে করার ক্ষেত্রে প্লেব্যাক ফিনিশআরসন এবং প্লেব্যাকস্টেট বিজ্ঞপ্তি পাওয়ার কোনও সম্ভাবনা আছে কি?
রোশিত

7
এটি একমাত্র উপায় নয়। আপনি ইউটিউব থেকে এমপি 4 ফাইল পেতে পারেন। আমি আমার এয়ারপ্লেয়ার পাইথন প্রকল্পে এটি করি , যা আপনাকে আপনার অ্যাপলটিভিতে ইউটিউব ভিডিও খেলতে সক্ষম করে। আমি এটি পোর্ট করব এবং এটি আমার বর্তমান আইওএস প্রকল্পে ব্যবহার করব এবং কোডটি প্রস্তুত হওয়ার পরে এখানে পোস্ট করব।
হ্যালোজিমি

7
দুর্ভাগ্যক্রমে সরাসরি লিঙ্ক ব্যবহার নিষিদ্ধ। বিভাগ II / 10। মধ্যে developers.google.com/youtube/terms : "আপনার API ক্লায়েন্ট হবে না [...] এর অ্যাক্সেস কোনো একটি YouTube খেলোয়াড় বা স্পষ্টভাবে YouTube দ্বারা অনুমোদিত অন্যান্য ভিডিও প্লেয়ার ব্যবহার ছাড়া অন্য উপায়ে যেকোনো YouTube অডিওভিস্যুয়াল বিষয়বস্তু কোন অংশ;"
Lvsti

26

আপনি যদি কোড ব্যবহার করছেন:

- (void)embedYouTube:(NSString*)url frame:(CGRect)frame {  
     NSString* embedHTML = @"\ 
        <html><head>\ 
     <style type=\"text/css\">\ 
     body {\ 
     background-color: transparent;\ 
     color: white;\ 
    }\ 
   </style>\ 
    </head><body style=\"margin:0\">\ 
       <embed id=\"yt\" src=\"%@\" type=\"application/x-shockwave-flash\" \ 
    width=\"%0.0f\" height=\"%0.0f\"></embed>\ 
       </body></html>";  
   NSString* html = [NSString stringWithFormat:embedHTML, url, frame.size.width, frame.size.height];  
   if(videoView == nil) {  
      videoView = [[UIWebView alloc] initWithFrame:frame];  
     [self.view addSubview:videoView];  
    }  
    [videoView loadHTMLString:html baseURL:nil];  
  }

উৎস:

শুধু এই লিঙ্কটি উল্লেখ করুন

নিশ্চিত হয়ে নিন যে আপনি এটি ডিভাইসে পরীক্ষা করেছেন সিমুলেটরটিতে নয়। যেহেতু সিমুলেটর সর্বদা নীল বাক্সের সাথে প্রশ্ন চিহ্ন প্রদর্শন করবে (এতে দ্রুত সময়ের প্লেয়ার নেই)।


23

আমি আমার মন্তব্যে উপরে লিখেছি যেহেতু আমি কাজ করছি এমন একটি প্রকল্পে আমাকে এটি করতে হয়েছিল। আমি এই সমস্যাটি সমাধান করেছি এবং গিথুবে কোড জমা দিয়েছি।

আপনি উত্সটি পরীক্ষা করতে পারেন এবং এটি এখানে কাঁটাচামচ করতে পারেন ।

এটি মূলত একটি ইউটিউব ইউআরএল নেয় এবং সমস্ত আইওএস সামঞ্জস্যপূর্ণ ভিডিও url পায়।

আশা করি এটি কোনও সহায়তা!
চিয়ার্স


4
ধন্যবাদ! বিটিডাব্লু, আপডেটগুলি সাম্প্রতিক ইউটিউব পরিবর্তনের সাথে বিষয়টি সমাধান করেছে।
পিটার ডিউইজ

4
এটি ইউটিউবের টস এর অধীনে অনুমোদিত নয়। এটি আপনার নিজের ঝুঁকিতে ব্যবহার করুন, কারণ আপনার অ্যাপ্লিকেশনটি যে কোনও মুহুর্তে কাজ বন্ধ করতে পারে যদি ইউটিউব লক্ষ্য করে যে আপনি টস অনুসরণ করছেন না বা যদি ইউটিউব এটি তৈরি করে এমন এম্বেড কোড পরিবর্তন করে।
ম্যাথিউ

12

আমি কেবল এমন কাউকেই হোঁচট খেয়েছি যিনি একটি YouTubeভিডিওর ভিতরে রাখতে সক্ষম হয়েছেন MPMoviePlayerController। এটি এখন সম্ভব প্রদর্শিত হবে।

এলবি ইউটিউবভিউ


@ ধন্যবাদ এটির কাজ ঠিক আছে তবে আমি যখন [এমপ্লেয়ার স্টপ] ব্যবহার করি; এই ভিডিওটি থামানোর জন্য ভিডিওটি চলছে i তবে আমি ভিডিওটি থামাতে চাই
জাসপ্রীত সিং

গিথুব লিঙ্কটি কি পটভূমিতে অডিও চালাচ্ছে?
খালিদ উসমান

2

টিউব ভিডিও খেলতে আপনাকে ইউআরএল পাস করার আগে ইউআরএলটি বের করতে হবে MPMoviePlayer। আপনি এটি সরাসরি খেলতে পারবেন না।

আমার গিথুব রেপো এর ডেমো বাস্তবায়ন করেছে implementation

দেখা:

https://github.com/DpzAtMicRO/IOSYoutubePlayer

এটি ব্যবহার করে দেখুন, এটি ইউটিউব ভিডিও সরাসরি MPMoviePlayerঅন্য যে কোনও ভিডিওর মতো করে লোড এবং প্লে করা সম্ভব করে তোলে এবং এটিও বেশ ভাল পদ্ধতির।

সম্পাদনা: আপনার প্রকল্পে এটি ব্যবহারের আগে আপনি Readme.md ভালভাবে যাচ্ছেন তা নিশ্চিত করুন


4
দুর্ভাগ্যক্রমে, ইউটিউবের টসের বিপরীতে। আপনি যদি এটি করেন তবে আপনি কেবল তখনই আপনার অ্যাপ্লিকেশনটির জন্য কাজ করতে পারবেন যতক্ষণ না ইউটিউব আপনি যা করছেন তা অজানা।
ম্যাথিউ

আমি ইউটিউব এপিআই ছেলেগুলিকে কিছুক্ষণ আগে ইমেল করেছিলাম সেই সাথে জিজ্ঞাসা করার জন্য যে ভিডিওর ইউআরএলটি নিজেই পার্স করা আমার পক্ষে ঠিক হবে কিনা; আমি যে জবাব পেয়েছি তা থেকে একটি উদ্ধৃতি: "কেবলমাত্র মেকানিজমাইজডই সমর্থিত হয় ইফ্রেমে এম্বেড। কাঁচা প্রবাহের অ্যাক্সেসটি আমরা ফিচার ফোনের জন্য সরবরাহ করি এমন কম রিজার্ভ আরটিএসপি স্ট্রিম বাদে আমাদের টস দ্বারা সমর্থিত নয়"
ম্যাথিউ

4
আপনি আমাকে নিম্নোক্ত পয়েন্টে বিশ্বাস করেছেন; আমি সম্মত হই যে এটি ভুল হিসাবে চিহ্নিত করার একটি হাতিয়ার হওয়া উচিত এবং ইউটিউব এম্বেড সমস্যা সমাধানের চেষ্টা করা লোকদের মধ্যে আমার এই উত্তরগুলির মধ্যে সবচেয়ে প্রাসঙ্গিক বলে আমি মনে করি যে তা উত্সাহ দেওয়া যথেষ্ট show ড্যামনিট, স্পষ্টতই স্ট্যাকওভারফ্লো আমার ডাউনভোটটি লক করে এবং আপনার উত্তর সম্পাদনা না করা হলে আমি এটিকে আর সরাতে পারব না।
ম্যাথিউ

দুর্দান্ত! আমি একটি সম্পাদনা করতে পারি এবং আপনাকে অনুরোধ করতে পারি তখন আপনার ডাউনটোটটি সরানোর জন্য! ... তবে ... দরকার নেই ... ওখানে থাক!
ডিডি_

@ ম্যাথিউ আইওএস অ্যাপস প্রচুর পরিমাণে এই ধরণের কাজ করছে (ইউটিউবের এপিআইকে বাইপাস করে) এবং এটি টসকে লঙ্ঘন করেছে যদিও আপনি দেখিয়েছেন, গুগল অনেক ক্ষেত্রেই কিছু মনে করবে না কারণ এটি তাদের পণ্য পৌঁছাতে দেয় আরও দর্শক।
rmp251

1

এটি নতুন এম্বেড কোড এবং কল করার জন্য iframe এর src উপাদান গ্রহণ করার মতোই সহজ

[self.webView loadRequest:[NSURLRequest requestWithURL:self.url]];


0

আইওএস অ্যাপ্লিকেশনটিতে ইউটিউব ভিডিও এম্বেড করার একটি সরকারী উপায় রয়েছে যা গুগল সরবরাহ করে।

কোকোপডসের মাধ্যমে লাইব্রেরি ইনস্টল করুন: পোড "ইউটিউব-আইওএস-প্লেয়ার-সহায়ক"

দ্বারা আমদানি #import “YTPlayerView.h” করুন : ব্যবহার করুন UIViewএবং শ্রেণীবদ্ধ সেট করুন YTPlayerViewবা YTPlayerViewপ্রোগ্রাম্যাটিকভাবে অবজেক্ট তৈরি করুন ।

ভিডিও লোড করুন: [self.playerView loadWithVideoId:@"M7lc1UVf-VE"];

এছাড়াও আছে playVideoএবং stopVideoপদ্ধতি উপলব্ধ। আরও তথ্যের জন্য এই লিঙ্কটি দেখুন

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.