Forum PCLab.pl: Visual Studio 2010 Mediaelement problem - Forum PCLab.pl

Skocz do zawartości

Uwaga! Uwaga! Lubisz gry w klimatach fantasy? Zmierz się z tysiącami graczy, zagraj za darmo w grę Fragoria!

Otwarty

Ikona Najnowsze pliki

Strona 1 z 1
  • Nie możesz rozpocząć nowego tematu
  • Nie możesz odpowiadać w tym temacie

Visual Studio 2010 Mediaelement problem Oceń temat: -----

#1 Użytkownik jest niedostępny   Land Ikona

  • Orator
  • PipPipPipPip
  • Grupa: Forumowicze
  • Postów: 511
  • Dołączył: Cz, 10 Maj 07

Napisany 07 Luty 2012 - 14:58

Witam, próbuje zrobić w programie Visual Studio 2010 Express for Windows Phone aplikacje i chcę wstawić dźwięk za pomocą właśnie Mediaelement. Problem polega na tym że chcę zrobić 2 przyciski, jeden służy do włączania i wyłączania dźwięku.1 a drugi włącza dźwięk.2 ale pod warunkiem że dźwięk.1 jest włączony. Niestety mam problem ze zrobieniem tak aby jednym przyciskiem dało się włączyć dźwięk.1 i wyłączyć. Jedyne co udaje mi się zrobić z tym przyciskiem to to żeby włączył dźwięk i wygląda to tak:

private void power_Click(object sender, RoutedEventArgs e)
{
media.Play();
}

Na necie szukałem coś o tym i tam znalazłem żeby zrobić coś takiego:

private bool isPlaying = false;
private void power_Click(object sender, RoutedEventArgs e)
{
if (isPlaying)
{
media.Play();
isPlaying = true;
}

Ale w tym przypadku dźwięk wogóle się nie pojawia, a w tym poprzednim sposobie się włączał jedynie.

#2 Użytkownik jest niedostępny   mejt Ikona

  • Gaduła
  • PipPipPip
  • Grupa: Forumowicze
  • Postów: 175
  • Dołączył: Cz, 16 Wrz 10

Napisany 07 Luty 2012 - 15:17

No to wyobraź sobie, że wchodzisz pierwszy raz do power_Click. Zmienna isPlaying ma wartość "false", czyli do wnętrza warunku nie wejdzie. Zmodyfikuj if'a i dodaj else, w którym będziesz dźwięk zatrzymywał.

#3 Użytkownik jest niedostępny   Land Ikona

  • Orator
  • PipPipPipPip
  • Grupa: Forumowicze
  • Postów: 511
  • Dołączył: Cz, 10 Maj 07

Napisany 09 Luty 2012 - 15:38

Już sobie poradziłem, ale teraz inny problem. Dodałem drugi Medialement z inną nazwą i innym dźwiękiem i kiedy klikam Power Button żeby odpalić dźwięk.1 to się włączają oba... a nawet nie dotykałem się do drugiego jeszcze

#4 Użytkownik jest niedostępny   mejt Ikona

  • Gaduła
  • PipPipPip
  • Grupa: Forumowicze
  • Postów: 175
  • Dołączył: Cz, 16 Wrz 10

Napisany 09 Luty 2012 - 18:10

Bez kodu ani rusz ;)

#5 Użytkownik jest niedostępny   Land Ikona

  • Orator
  • PipPipPipPip
  • Grupa: Forumowicze
  • Postów: 511
  • Dołączył: Cz, 10 Maj 07

Napisany 09 Luty 2012 - 19:13

namespace Test
{
public partial class MainPage : PhoneApplicationPage
{
// Constructor
public MainPage()
{
InitializeComponent();
}

private bool isPlaying = true;
private void power_Click(object sender, RoutedEventArgs e)
{
if (isPlaying)
{
media.Play();
isPlaying = false;
}
else
{
media.Stop();
isPlaying = true;
}
}
}
}

To tyle, problem w tym że właśnie mam 2 Mediaelement jeden to właśnie ten tutaj nazwany "media" a drugi to "media2" i ten "media2" wogóle nie jest zaprogramowany na razie, czyli nie powinien się włączać a kiedy kliknę ten PowerButton to nie słychać wogóle tego "media1" bo "media2" go zagłusza a nie wiem jakim cudem się włącza przy wciśnięciu Powera

#6 Użytkownik jest niedostępny   mejt Ikona

  • Gaduła
  • PipPipPip
  • Grupa: Forumowicze
  • Postów: 175
  • Dołączył: Cz, 16 Wrz 10

Napisany 09 Luty 2012 - 20:55

Po pierwsze obsługa przycisku powinna wyglądać tak:

private bool isPlaying = false;

private void power_Click(object sender, RoutedEventArgs e)
{
	if (!isPlaying)
	{
		media.Play();
		isPlaying = true;
	}
	else
	{
		media.Stop();
		isPlaying = false;
	}
}


Jeśli natomiast chcesz wymusić, żeby ten guzik obsługiwał tylko obiekt "media", to możesz w tej metodzie wymusić zatrzymanie odtwarzania z "media2", np. tak:
private void power_Click(object sender, RoutedEventArgs e)
{
	//wymuś zatrzymanie odtwarzania media2 za każdym razem kiedy guzik power będzie kliknięty
	media2.Stop();

	if (!isPlaying)
	{
		media.Play();
		isPlaying = true;
	}
	else
	{
		media.Stop();
		isPlaying = false;
	}
}


No chyba że jest jakiś wymóg, żeby w takiej aplikacji była tylko jedna kontrolka typu MediaElement, ale tego musisz już poszukać sam na MSDN, bo mi przy szybkim przejrzeniu nic takiego w oko nie wpadło. A swoją drogą, skoro chcesz odtwarzać jeden dźwięk na raz, to dlaczego dodałeś 2 obiekty MediaElement? Nie lepiej dodać jeden i w zależności od klikniętego przycisku ustawiać mu ścieżkę na plik, który ma odtwarzać(chyba za pomocą parametru Source)?

Strona 1 z 1
  • Nie możesz rozpocząć nowego tematu
  • Nie możesz odpowiadać w tym temacie

1 Użytkowników czyta ten temat
0 użytkowników, 1 gości, 0 anonimowych