質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
Objective-C

Objective-Cはオブジェクト指向型のプログラミング言語のひとつです。C言語をベースにSmalltalkが取り入れられています。

iOS 6

iOS 6はアップル社によって2012年6月11日に発表され、2012年9月19日に発売されました。iPhone 3GS以降に使われています。

iOS

iOSとは、Apple製のスマートフォンであるiPhoneやタブレット端末のiPadに搭載しているオペレーションシステム(OS)です。その他にもiPod touch・Apple TVにも搭載されています。

Xcode

Xcodeはソフトウェア開発のための、Appleの統合開発環境です。Mac OSXに付随するかたちで配布されています。

Swift

Swiftは、アップルのiOSおよびOS Xのためのプログラミング言語で、Objective-CやObjective-C++と共存することが意図されています

Q&A

解決済

1回答

3562閲覧

【IOS】バックグラウンドで音声が再生され続けてしまう

退会済みユーザー

退会済みユーザー

総合スコア0

Objective-C

Objective-Cはオブジェクト指向型のプログラミング言語のひとつです。C言語をベースにSmalltalkが取り入れられています。

iOS 6

iOS 6はアップル社によって2012年6月11日に発表され、2012年9月19日に発売されました。iPhone 3GS以降に使われています。

iOS

iOSとは、Apple製のスマートフォンであるiPhoneやタブレット端末のiPadに搭載しているオペレーションシステム(OS)です。その他にもiPod touch・Apple TVにも搭載されています。

Xcode

Xcodeはソフトウェア開発のための、Appleの統合開発環境です。Mac OSXに付随するかたちで配布されています。

Swift

Swiftは、アップルのiOSおよびOS Xのためのプログラミング言語で、Objective-CやObjective-C++と共存することが意図されています

0グッド

3クリップ

投稿2014/09/20 04:08

iOS開発をしているのですが、途中でハマってしまいました。
問題はある画面で動画を再生する動作があるのですが、その動画の音声が次の画面に遷移しても音声が止まらず保持され続けるというものです。リピート再生できるようにしています。AudioSessionが怪しいのかなと思っているのですが、検討がつきません。教えていただけると嬉しいです。。。

コードは以下です。

lang

1- (void)updateCell:(UITableViewCell *)cell atIndexPath:(NSIndexPath *)indexPath { 2// Update Cells 3 //movieのurlが入った配列 4 NSString *text = [_movie_ objectAtIndex:indexPath.row]; 5 NSLog(@"movietext:%@",text); 6 NSURL *url = [NSURL URLWithString:text]; 7 moviePlayer = [[MPMoviePlayerController alloc] initWithContentURL:url]; 8 moviePlayer.controlStyle = MPMovieControlStyleNone; 9 moviePlayer.scalingMode = MPMovieScalingModeAspectFit; 10 CGRect frame = _cell.movieView.frame; 11 [moviePlayer.view setFrame:frame]; 12 [_cell.movieView addSubview: moviePlayer.view]; 13 [_cell.movieView bringSubviewToFront:moviePlayer.view]; 14 15 //movie再生を再度開始さ 16 [[NSNotificationCenter defaultCenter] addObserver:self 17 selector:@selector(moviePlayBackDidFinish:) 18 name:MPMoviePlayerPlaybackDidFinishNotification 19 object:moviePlayer]; 20 21 [moviePlayer setShouldAutoplay:YES]; 22 [moviePlayer prepareToPlay]; 23 [moviePlayer play]; 24} 25 26- (void) moviePlayBackDidFinish:(NSNotification*)notification { 27 [moviePlayer play]; 28} 29

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

上記のコードだけでは、画面遷移時にどのような処理をしているのか分からないため何とも言えませんが
MPMoviePlayerControllerは(一時)停止や、破棄をしない限り再生が継続されるので
画面が遷移する際に動画の状態を適切に制御する必要があります。

簡単な方法としては
UIViewControllerの viewWillDisappear: あたりでMPMoviePlayerControllerのplaybackStateを見て
必要に応じpauseをかけるのが良いでしょう。
遷移先から戻ってきた際に動画の再生を再開したいのであれば
viewWillAppear:などで同様にplaybackStateを見た上でplayを呼びます。

詳細に関しては、MPMoviePlayerControllerとUIViewControllerのAPIリファレンスを参照してください。

投稿2014/09/24 06:10

bluedome

総合スコア57

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問