Кнопка AirPlay на пользовательском экране

4.3 наконец :) Я сейчас ищу, как добавить кнопку воспроизведения в воздухе в пользовательский вид. У меня есть MPMoviePlayer, который загружает фильм. Я отключил стандартные элементы управления и добавил вид наложения с настраиваемыми кнопками воспроизведения, паузы, остановки и громкости. Если кто-нибудь знает, как добавить кнопку, которая будет воздушной игрой, поделитесь знаниями? Я буду размещать все, что у меня есть ...

Я искал и искал по всей сети, как загрузить сборку в Unity3D, и мне очень трудно. Прошу прощения, если этот пост будет длинным, но я выложу все, что я узнал и как далеко я продвинулся, так как я впервые работаю с .net и dll.

У меня есть собственная dll , у него есть целая куча extern «C», поэтому я могу загружать все во время выполнения. Это работает в единстве, если я использую атрибут [DLLImport] и тому подобное. Однако это громоздкий код, который нельзя использовать повторно. Позже это станет еще более громоздким, когда мне придется абстрагировать свою систему между более чем одной нативной библиотекой.

Итак, я решил, что сделаю оболочку C +++ / CLI, а затем загрузю ее в Unity3d, как любую другую dll, и просто свяжу пространство имен: "using MyWrapper;"

Я создал простейшую библиотеку C ++ / CLI, какую только мог придумать. вся моя библиотека имеет класс (Class1) и функцию int getnum () {return 5;}. Я использую VC ++ 2010 express, строю с V90 и изменяю файл vcxproj на версию 2.0. Я знаю, что Unity поддерживает только 2.0. Я создаю / clr, чтобы иметь собственный код и код .net.

Это полностью приводит к сбою unity3d. Это мой журнал ошибок в GameManager.Awake () [0x0001d] в Manager \ GameManager.cs: 116 в GameManager.Awake () [0x00000] в Manager \ GameManager.cs: 107 at (вызов времени выполнения оболочки) GUIRadioButton.runtime_invoke_void (object, intptr, intptr, intptr) <0xffffffff> Получение необработанного исключения NULL

, если я встраиваю его в / clr: safe, вместо этого оно работает нормально. / clr: pure тоже не работает.

Поэтому я решил создать проект внешней командной строки C #, чтобы все протестировать. Я загружаю свою библиотеку и компилирую в 2.0 и / clr (смешанный режим) работает без проблем.

Я использую Unity 2.6 Pro.

Возможно, то, что я хочу сделать, невозможно, я не знаю ... Я имею в виду, что я полагал, что это было то, чем был .NET. Я просто хочу иметь систему, которую можно будет повторно использовать в других проектах (C ++).

Спасибо за любую информацию.

Вот мой тестовый проект c ++ / cli.

#pragma once

using namespace System;

namespace CLRTest {

    public ref class Class1
    {
        // TODO: Add your methods for this class here.
    public:

        Class1(){}

        int getnum (){return 5;}
    };
}

Когда я создаю проект командной строки C #, подобный этому . это работает.

using System;
using System.Collections.Generic;
using System.Text;
using CLRTest;

namespace CLRTestLoad
{
    class Program
    {
        static void Main(string[] args)
        {
            Class1 c = new Class1();

            Console.WriteLine ("num is = " + c.getnum());
        }
    }
}

Выполнение этой строки в Unity3d приводит к сбою всего редактора. ...

Я пытаюсь сопоставить пары "ключ-значение", которые появляются в конце (длинных) строк. Строки выглядят так (я заменил "\ n")

my_str = "lots of blah
          key1: val1-words
          key2: val2-words
          key3: val3-words"

, поэтому я ожидаю совпадения "key1: val1-words", "key2: val2-words" и "key3: val3-words".

  • Набор возможные имена ключей известны.
  • Не все возможные ключи появляются в каждой строке.
  • По крайней мере, два ключа появляются в каждой строке (если это упрощает сопоставление).
  • val-words может состоять из нескольких слов.
  • пары ключ-значение должны совпадать только в конце строки.
  • Я использую модуль Python re.

Я думал

re.compile('(?:tag1|tag2|tag3):')

плюс некоторые упреждающие утверждения были бы решением. Но я не могу понять это правильно. Как мне это сделать?

Спасибо.

/ Дэвид

Реальный пример строки:

my_str = u'ucourt métrage pour kino session volume 18\nThème: O sombres héros\nContraintes: sous titrés\nAuthor: nicoalabdou\nTags: wakatanka productions court métrage kino session humour cantat bertrand noir désir sombres héros mer medine marie trintignant femme droit des femmes nicoalabdou pute soumise\nPosted: 06 June 2009\nRating: 1.3\nVotes: 3'

РЕДАКТИРОВАТЬ:

На основе решения Микеля я сейчас использую следующее: Наверное, это просто, но я не нашел ответа. rndStr = "20101215" rndStr2 = "20101216" str = "Просмотр дат между 20110316 и 20110317 годами" outstr = re.sub ("(. +) ([0-9] {8}) (....

новичок в python. Это, вероятно, просто, но я не нашел ответа.

rndStr = "20101215"
rndStr2 = "20101216"
str = "Looking at dates between 20110316 and 20110317"
outstr = re.sub("(.+)([0-9]{8})(.+)([0-9]{8})",r'\1'+rndStr+r'\2'+rndStr2,str)

вывод, который я ищу:

Looking at dates between 20101215 and 20101216

Но вместо этого я получаю:

P101215101216

Значения двух rndStr на самом деле не имеют значения. Предположим, что оно случайное или получено из пользовательского ввода (я поместил здесь статические значения, чтобы было проще) . Спасибо за любую помощь.

12
задан JeremyP 16 March 2011 в 22:00
поделиться