Partage
  • Partager sur Facebook
  • Partager sur Twitter

Gérer les surcouche video/View en objective-c

Integrer une video dans une view

Sujet résolu
    19 février 2013 à 18:38:03

    Bonjour,

    Je sais que mon titre n'est pas très explicite mais je vais essayer d'expliquer simplement.

    Actuellement je travail sur objective-c dans le but d'afficher du contenu dans une application (publicité, video....)

    Je travail sous deux format. En bannière (en bas de l'ecran par exemple) et en plein écran.

    Mon contenu se place toujours au dessus de l'application avec du contenu html inséré dans une View

    En plein écran je rencontre un problème lorsque je souhaite afficher une video.

    Ma video s'affiche en dessous.

    J'aimerai savoir si quelqu'un sait comment gérer le lecteur video et sa position au niveau des couches appliquer

    et comment l'intégrer a une View si c'est possible.

    Je me doute que mon sujet n'est pas très clair mais je l'éditerai en fonction des retours parce que même pour moi ce n;est pas simple de l'expliquer seulement avec des mots

    Merci d'avance ;)

    -
    Edité par florent.richard 19 février 2013 à 19:50:23

    • Partager sur Facebook
    • Partager sur Twitter
      19 février 2013 à 22:52:41

      Si j'ai bien compris:
      En full screen tu souhaite afficher une bannière-video mais elle se retrouve en dessous?

      Comment ajoutes tu ta bannière? Essaye avec ca:

      -(void)insertSubviewUIView*)view aboveSubviewUIView*)siblingSubview;
      • Partager sur Facebook
      • Partager sur Twitter
        20 février 2013 à 9:51:30

        Oui voila c'est ça, pour illustrer :

        Pour obtenir ce résultat J'effectue une requête qui me retourne les données d'un fichier json 

        concernant la video, le json me retourne du html du type  : 

        <IFRAME SRC=http...

        et quand on clique sur le lien de la video :

        Sauf que comme je l'ai dit elle se lance en arrière plan alors que j'aimerai qu'elle se lance a l'endroit ou elle apparait avant lecture et que mes banniere plublicitaire en haut et en bas reste a l'identique.

        @Horiel : je ne peux tester aujourd'hui mais je test ça demain.

        -
        Edité par florent.richard 20 février 2013 à 9:56:09

        • Partager sur Facebook
        • Partager sur Twitter
          20 février 2013 à 15:58:00

          Sur le deuxième screen on voit le loader de la vidéo donc elle est au premier plan, la vidéo passe en arrière plan uniquement lorsqu'elle est en full screen?

          Tu peux peut-être détecter (via une notif ou autre) quand la vidéo passe en fullscreen et utiliser la methode bringSubViewToFront: ?

          • Partager sur Facebook
          • Partager sur Twitter
            21 février 2013 à 11:30:22

            J'essai de detecter le lancement de la video car je n'ai aucun moyen de savoir via l'url si il y a une video ou non dans ma publicité car je ne reçoit pas un url du type : (je me suis trompé)

            <IFRAME SRC=http...

            mais plutot :

            "http://*****.****.com/*****.php?*****

            Si j'arrive a détecter le lancement de la video / la présence du lecteur video, et a desactiver le fullscreen ou avec le bringSubViewToFront, je pense pouvoir arriver a mes fins.

            En fessant mes test avec le simulateur, je vois des lignes de log du type :

            2013-02-21 11:24:04.701 koko[1254:11903] [MPAVController] Autoplay: Enabling autoplay
            2013-02-21 11:24:04.707 koko[1254:11903] [MPAVController] Autoplay: Disabling autoplay for pause
            2013-02-21 11:24:04.707 koko[1254:11903] [MPAVController] Autoplay: Disabling autoplay

            Lorsque je lance clique sur ma video.

            Est-il possible de récupérer MPAVController ?

            J'ai chercher sur le net mais pour l'instant je ne trouve rien de probant le concernant 

            Je suis plutôt novice en objective c, mais j'ai un projet d'envergure a mener a bien.

            En tout cas merci de m'aider.


            • Partager sur Facebook
            • Partager sur Twitter
              21 février 2013 à 11:33:48

              Oui, on voit bien le loader puis la video se lit en fullscreen en arriere plan.

              J'essai de detecter le lancement de la video car je n'ai aucun moyen de savoir via l'url si il y a une video ou non dans ma publicité car je ne reçoit pas un url du type : (je me suis trompé)

              <IFRAME SRC=http...

              mais plutot :

              "http://*****.****.com/*****.php?*****

              Si j'arrive a détecter le lancement de la video / la présence du lecteur video, et a desactiver le fullscreen ou avec le bringSubViewToFront, je pense pouvoir arriver a mes fins.

              En fessant mes test avec le simulateur, je vois des lignes de log du type :

              2013-02-21 11:24:04.701 koko[1254:11903] [MPAVController] Autoplay: Enabling autoplay
              2013-02-21 11:24:04.707 koko[1254:11903] [MPAVController] Autoplay: Disabling autoplay for pause
              2013-02-21 11:24:04.707 koko[1254:11903] [MPAVController] Autoplay: Disabling autoplay

              Lorsque je clique sur ma video.

              Est-il possible de récupérer MPAVController ?

              J'ai chercher sur le net mais pour l'instant je ne trouve rien de probant le concernant 

              Je suis plutôt novice en objective c, mais j'ai un projet d'envergure a mener a bien.

              En tout cas merci de m'aider.

              edit : A parcourir le web, j'ai trouvé quelque chose d'interessant. 

              citation :

              There's a property that enables/disables in line media playback in the iOS web browser (if you were writing a native app, it would be the allowsInlineMediaPlayback property of a UIWebView). By default on iPhone this is set to NO, but on iPad it's set to YES.

              En lisant ça j'ai tester ma publicité avec la video sur IPAD et la ma video reste bien dans son conteneur avec mes pub bannière en place .

              Donc je pense qu'un webView.allowsinlineMediaPlayback:YES; bien placé dans mon SDK devrait résoudre mon problème .

              -
              Edité par florent.richard 21 février 2013 à 12:28:07

              • Partager sur Facebook
              • Partager sur Twitter
                21 février 2013 à 17:43:58

                Salut,

                j'ai pas très bien compris ton problème mais tu peux pas juste utiliser un MPMoviePlayerViewController et mettre le lien JSON (bon c'est du iFrame dans JSON pk pas mais wtf) dedans? Comme ça tu pourras contrôler comme tu veux que ce soit en miniature / fullscreen.

                Mais enfin bref tiens nous au jus pour ta solution si elle marche

                • Partager sur Facebook
                • Partager sur Twitter
                Si mon aide vous a été utile, merci de mettre le sujet en résolu et mettre mon post en avant. Cheers!
                  21 février 2013 à 18:10:09

                  Pour expliquer simplement. Quand on regarde le deuxième screen, ma video commence a se charger puis se lit en full screen en arrière plan (derrière ma View interstitiel). Quand je ferme ma view, je peux voir la video qui a déjà débutée.

                  Moi je souhaiterai que ma video s'execute a l'endroit ou elle se charge. on peut avoir un exemple concret sur une application comme youtube ou la video ne se lance pas en fullscreen mais dans son emplacement.

                  Sur IPAD Cela fonctionne très bien mise a par des problèmes de mise en page mais ce la vient du fait que json me retourne du code html avec mise en page adapté a l'iphone.

                  le json ne me sert pas juste a récupérer ma video, je récupère aussi plein de donnée.

                  Pour l'instant ma piste du allowsInlineMediaPlayback est veine. Je suis allez vérifier dans developer.apple.com et par défaut allowsInlineMediaPlayback est bien a "NO" pour l'iphone et "YES" pour l'IPAD. Ce qui me fait penser que ça viendrais bien de ça. Mais impossible de le vérifier avec tous les tests que j'ai fais sur mon code avec cette propriété. 

                  Pour l'instant je cherche encore une solution.

                  J'ai vu des exemple avec MPMoviePlayerViewController.

                  le problème est que je ne reçoit pas systématiquement une publicité avec video.

                  Sur l'exemple que je donne avec la même url, je récupère les bannières beats et la video

                  Je peux recevoir une image ou autre chose a la place mais toujours en html. Est ce que ça poserai problème ?

                  -
                  Edité par florent.richard 21 février 2013 à 18:14:42

                  • Partager sur Facebook
                  • Partager sur Twitter
                    22 février 2013 à 9:46:39

                    en fait ce que ej trouve bizarre c'est que dans un JSON t'as tout un blabla en html alors que logiquement tu devrais avoir un champs texte, un champs html (s'il y a), un champs video etc...

                    Il y aurait pas moyen que tu montres plus de code ou limite tu files une partie du code qui merde pour voir? 

                    • Partager sur Facebook
                    • Partager sur Twitter
                    Si mon aide vous a été utile, merci de mettre le sujet en résolu et mettre mon post en avant. Cheers!
                      22 février 2013 à 10:48:04

                      Je peux difficilement passer une partie de code puisqu'il s'agit d'un SDK assez complexe qui une fois compilé est transmit au client.

                      le json au niveau applicatif me permet de savoir le type de pub : bannière ou interstitiel, de connaitre la campagne de publicité que le client a choisis, le temps de rafraichissement des pub, s'il doit y avoir un bouton pour fermera pub.... plein de chose nécessaire, il me permet de connaitre le type d'effet qu'aura ma pub a l'affichage puisque ce sont des paramètres que le client choisit a distance via une interface web et stocker sur serveur.

                      il se présente sous la forme :

                      {

                      • "data": {
                        • "slot": {
                          • "width": "320",
                          • "height": "480",
                          • "offset_x": "0",
                          • "offset_y": "0",
                          },
                        • "asset": {
                          • "type": "interstitial"
                          • "format": "html"
                          • "html": "<head></head><body style=\"padding:0;margin:0;\"><SCRIPT SRC=\"http://****.*****.com/tracker_js.php?*****\"></SCRIPT></body>",
                          }
                        }

                      }

                      Bon je n'ai pas tout mit mais en gros les donner se presente comme cela.

                      Mais pour ce qui est de l'affichage il s'agit de html/css/js qui est comme ceci :

                      <head></head><body style=\"padding:0;margin:0;\"><SCRIPT SRC=\"http://******.******.com/tracker_js.php?********\"></SCRIPT></body>

                      Donc difficile pour moi de savoir de quoi il en retourne: image? video? les deux ?

                      au niveau objective-c je recupere mes donnée dans un dictionnaire et j'effectue ma requete ainsi :

                          NSString *script = [[NSString alloc] initWithFormat:@"%@", html];
                          [adView loadHTMLString:script baseURL:nil];

                      ou html contient mon html.

                      et la second ligne load le resultat dans ma view. Puis je l'ajoute ensuite a l'application en question.

                      Apres en soit mon code ne merde pas puisqu'il fonctionne bien sous IPAD, c'est l'iphone qui pause probleme.

                      J'aimerai bien partager plus de code pour trouver mon problème mais je pense que mon entreprise n'apprécierai pas mon geste...

                      edit : 

                      je suis en train de tester avec des lien "normaux", c'est a dire sans passer pas je json.

                        html = @"<video width='480' height='270' controls autoplay><source src='http://aino.se/media/207.mp4' type='video/mp4'></video>";

                      La video est lisible sous ipad mais pas sous iphone. le bouton lecture est barré. Une explication a ça ?

                       edit2:

                      je viens de tester avec une video full html5.

                      <video controls autoplay><source src='http://media.sublimevideo.net/v/horizon_360p.mp4' data-quality='base' /></video>



                      J'ai le même comportement, la video se lance dans le lecteur de l'iphone et pas dans son contenu....

                      je commence a désespérer...^^

                      -
                      Edité par florent.richard 22 février 2013 à 11:47:57

                      • Partager sur Facebook
                      • Partager sur Twitter
                        22 février 2013 à 12:02:09

                        Salut,

                        quand t'es en iphone et qu'on clique sur la vidéo contenue dans ta uiwebview, tu voudrais qu'il affiche ça automatiquement en plein écran? Ou il faut qu'il reste en miniature? (ce que je trouve au niveau de l'UI débile, ça aurait un sens sous iPad mais sous iPhone je trouve que non). C'est plus une question/affirmation pour voir si j'ai bien compris ton besoin lol

                        • Partager sur Facebook
                        • Partager sur Twitter
                        Si mon aide vous a été utile, merci de mettre le sujet en résolu et mettre mon post en avant. Cheers!
                          22 février 2013 à 12:13:21

                          Non non pas de plein écran. Je veux que ma video reste dans l'emplacement ou elle est sur mon premier screen. 

                          L'intérêt de garder la video en miniature et que les bannières publicitaire soit toujours visible.

                          • Partager sur Facebook
                          • Partager sur Twitter
                            22 février 2013 à 13:28:02

                            D'accord. Bizarre personnellement dans ma boîte (que je tairais le nom mais ça se base bcp sur la pub) on a pas de bandeau avec possibilité de faire jouer une vidéo ; même sur DFP de Google tu verras que ya pas ça. Enfin bref.

                            Tu as essayé pour des tests de jouer des vidéo embbed youtube pour voir si tu as le meme effet? (pour voir si ça vient des balises embbed ou video(html5))

                            • Partager sur Facebook
                            • Partager sur Twitter
                            Si mon aide vous a été utile, merci de mettre le sujet en résolu et mettre mon post en avant. Cheers!
                              22 février 2013 à 16:53:14

                              je viens d'essayer avec cet url :

                              http://www.youtube.com/embed/6_I70KACh4o

                              mon SDK veut pas loader la video.

                              Je me suis fais un petit lecteur vite fais avec MPMoviePlayerViewController que je peux redimensionner mais il veut pas non plus la lancer.

                              Sinon forcement avec le lecteur que j'ai fais, je peux facilement redimensionner ma video.

                              J'ai regardé ce que me retournais l'url contenu dans le html du json...et je peux vraiment pas récupérer en faillant dans les fichier la video

                              sinon ça aurai été une bonne solution...

                              • Partager sur Facebook
                              • Partager sur Twitter
                                22 février 2013 à 17:18:21

                                Je comprends pas il y a pas un problème avec ton lien dans ce cas? C'est quoi le format de ta vidéo déjà?

                                florent.richard a écrit:

                                Je me suis fais un petit lecteur vite fais avec MPMoviePlayerViewController que je peux redimensionner mais il veut pas non plus la lancer.

                                Sinon forcement avec le lecteur que j'ai fais, je peux facilement redimensionner ma video.

                                • Partager sur Facebook
                                • Partager sur Twitter
                                Si mon aide vous a été utile, merci de mettre le sujet en résolu et mettre mon post en avant. Cheers!
                                  22 février 2013 à 18:09:38

                                  je ne connais pas le format de la video. J'ai récupérer ça sur youtube mais normalement il me semble que pour le html 5 il faut du h264 ou du mp4 qui devrait être compatible avec l'iphone.

                                  Puis l'iphone en natif ne lit même pas les video en html5 dans safari.... (en tout cas sur mes test)

                                  le weekend apportera peut être des solutions....

                                  Si d'ici lundi je n'ai rien trouvé je soumettrai mon problème en réunion pour trouver une solution.

                                  -
                                  Edité par florent.richard 22 février 2013 à 18:14:31

                                  • Partager sur Facebook
                                  • Partager sur Twitter
                                    23 février 2013 à 20:07:30

                                    C'est un mp4 et normalement il est censé le lire.

                                    A ta réunion soumets li'dée de sortir l'url de la video du fichier json au lieu de faire tout un format en html babla et tu construiras une vue avec ta vidéo dans un MPMoviePlayerViewController c'est mieux.

                                    Nous quand on affiche des vues vidéos dans notre vue UIWebview on passe pas par des iframe têt c'est ça qu'il aime pas?

                                    • Partager sur Facebook
                                    • Partager sur Twitter
                                    Si mon aide vous a été utile, merci de mettre le sujet en résolu et mettre mon post en avant. Cheers!
                                      25 février 2013 à 11:28:16

                                      Bonjour, bonjour,

                                      Apres réunion, la tache ma été largement simplifié.

                                      Je ne doit plus insérer ma video dans son contenu mais seulement par dessus mon interstitiel.

                                      Donc une petit gestion de la pile des views et ce sera réglé.

                                      Je passe le sujet en close même s'il ne répond pas exactement a mon problème de base.

                                      Merci pour l'aide

                                      • Partager sur Facebook
                                      • Partager sur Twitter

                                      Gérer les surcouche video/View en objective-c

                                      × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                                      × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
                                      • Editeur
                                      • Markdown